最后一题我想的是用类似bfs的方法做,但只能通过20%,不知道思路错在哪里,求大佬解惑:def maxres(nums,m): reses=set() #储存前i个数组合,可以产生的所有余数,使用set去重 reses.add(nums[0]%m) #首先放入第一个数的余数 for i in range(1,len(nums)): tmp=list(reses) #用一个tmp表示 前i-1个数任意组合 可以得到的所有余数 for res in tmp: reses.add((res+nums[i])%m) #所有余数与当前的num[i]结合,将产生的新余数放入 return max(reses) #返回所有余数中的最大值 if __name__=='__main__': nums = [5, 7, 6, 1, 2, 3, 5, 7, 9, 3,8,16,2,9] m = 50 print(maxres(nums,m))
全部评论
(1) 回帖