minimum operations to reduce x to zrero. Can we do it using recursion+dp?

https://leetcode.com/explore/challenge/card/january-leetcoding-challenge-2021/580/week-2-january-8th-january-14th/3603/
My code giving me tle. Can anyone clarify if we could solve it using recursion+dp

import sys
count=sys.maxsize

class Solution:
    def minOperations(self, nums: List[int], x: int) -> int:
        def solve(ss,se,nums,x,res):
            global count
            if (ss,se) in d:
                return d[(ss,se)]
            if x==0:
                count=min(res,count)

            if ss==se:
                if x-nums[se]==0:
                    count=min(res+1,count)
                d[(ss,se)]=res+1
                return
            
            if(x-nums[ss]>=0):
                solve(ss+1,se,nums,x-nums[ss],res+1)

            if(x-nums[se]>=0):
                solve(ss,se-1,nums,x-nums[se],res+1)
            d[(ss,se)]=res
            
      
        global count
        count=sys.maxsize
        d={}
        solve(0,len(nums)-1,nums,x,0)
        if sys.maxsize==count:
            return -1
        return count
	
	```
Comments (0)