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
```