ulloa

Run Settings
LanguagePython
Language Version
Run Command
def minElementSum2(n, S): if n == 0: return 0 if n < min(S): return None candidates = [] for s in S: cand = minElementSum2( n-s, S ) if cand is not None: candidates.append( cand + 1 ) if len(candidates) == 0: return None return min(candidates) # def minElementSum(n, S): # done = [None]*(n+1) # 0 through n inclusive # done[0] = 0 # first is 0 # for i in range(n+1): # include n # candidates = [] # for s in S: # if i-s >= 0 and done[i-s] != None: # candidates.append(done[i-s] + 1) # if len(candidates) != 0: # done[i] = min(candidates) # # else, it stays as None # return done[n] done = [None]*101 done[0] = 0 def minElementSum3(n, S): if done[n] != None: return done[n] else: if n < min(S): return None candidates = [] for s in S: cand = minElementSum3( n-s, S ) if cand is not None: candidates.append( cand + 1 ) if len(candidates) == 0: done[n] = None else: done[n] = min(candidates) return done[n] print(minElementSum2(20, [1, 2, 3, 4])) print(minElementSum3(20, [1, 2, 3, 4]))
Editor Settings
Theme
Key bindings
Full width
Lines