zltzlt 发表于 2020-3-26 17:23:06

塔利班 发表于 2020-3-24 18:10
已改

输入以下数据超时:

nums =
s = 49

zltzlt 发表于 2020-3-26 17:24:32

whosyourdaddy 发表于 2020-3-24 18:22
def func358(nums,s):
    if sum(nums)

解答错误

输入:nums = , s = 1
输出:1
预期结果:2

zltzlt 发表于 2020-3-26 17:25:40

旅途Z 发表于 2020-3-24 19:25
import itertools
import numpy as np



输入以下数据超时:

nums = , s = 0

zltzlt 发表于 2020-3-26 17:27:36

suchocolate 发表于 2020-3-24 19:59
我的思路:
1)全是+号算一下:
2)全是-号算一下:


输入以下数据超时:

nums = , s = 48

zltzlt 发表于 2020-3-26 17:31:13

ArmandXiao 发表于 2020-3-24 20:35


输入以下数据超时:

nums = , s = 35

zltzlt 发表于 2020-3-26 17:32:23

fan1993423 发表于 2020-3-25 18:14
@zltzlt 12楼已改

输入以下数据报错:

nums = , s = 0

zltzlt 发表于 2020-3-26 17:33:10

TJBEST 发表于 2020-3-25 21:13
楼主 我又写了一个,应该可以了,不是递归

输入以下数据报错:

nums = , s = 2

zltzlt 发表于 2020-3-26 17:33:38

lawsonwang 发表于 2020-3-26 08:36
直接用背包试试。

140 ms

TJBEST 发表于 2020-3-26 17:44:31

zltzlt 发表于 2020-3-26 17:33
输入以下数据报错:

已改
def fun358(nums,s):
    M = len(nums)
    dic = dict()
    if nums == 0:
      dic = 2
    else:
      temp = nums
      dic = 1
      dic[-temp] = 1
    for each in range(1,M):
      dic_temp = dict()
      temp = nums
      for eachEle in dic:
            if nums == 0:
                try:
                  dic_temp = dic_temp + 2 * dic
                except Exception:
                  dic_temp = 2 * dic
            else:
                try:
                  dic_temp = dic_temp + dic
                except Exception:
                  dic_temp = dic
                try:
                  dic_temp = dic_temp + dic
                except Exception:
                  dic_temp = dic
      dic = dic_temp
    try:
      return dic
    except:
      return 0

fan1993423 发表于 2020-3-26 17:55:40

def fun358(nums,s):
    if 0 in nums:
      count0=pow(2,nums.count(0))
      nums=list(filter(lambda x:x,nums))
    else:
      count0=1
    if not nums:
      if not s:
            return count0
      else:
            return 0
    if len(nums)==1:
      if nums==s or nums==-s:
            return count0
      else:
            return 0
    nums.reverse()
    result=0
    def recursion(nums,s):
      nonlocal result,count0
      if len(nums)==1:
            if nums==s or nums==-s:
                result+=1
                return result
            else:
                return result
      s+=nums
      if sum(nums)>s:
            recursion(nums,s)+recursion(nums,s-nums*2)
      elif sum(nums)==s:
            result+=1
            return recursion(nums,s-nums*2)
      else:
            return recursion(nums,s-nums*2)
      return result
    return recursion(nums,s)*count0

fan1993423 发表于 2020-3-26 17:56:39

@zltzlt

蒋博文 发表于 2020-3-26 22:48:31

楼主,请问最近咋没有题了?

suchocolate 发表于 2020-3-27 09:34:35

zltzlt 发表于 2020-3-26 17:27
输入以下数据超时:

超时是指超时后没有相应吗,我这里ok的,虽然时间比较长。
https://xxx.ilovefishc.com/album/202003/27/093230azgox89pww3wep72.png

zltzlt 发表于 2020-3-27 12:49:06

suchocolate 发表于 2020-3-27 09:34
超时是指超时后没有相应吗,我这里ok的,虽然时间比较长。

超时是用时太长的意思

zltzlt 发表于 2020-3-27 18:31:53

TJBEST 发表于 2020-3-26 17:44
已改

328 ms

zltzlt 发表于 2020-3-27 18:32:06

fan1993423 发表于 2020-3-26 17:56
@zltzlt

要加了好友后再 @ 才有用的

zltzlt 发表于 2020-3-27 18:33:22

fan1993423 发表于 2020-3-26 17:55


输入以下数据超时:

nums = , s = 44

fan1993423 发表于 2020-3-27 18:35:51

zltzlt 发表于 2020-3-27 18:33
输入以下数据超时:

我这边很快显示5381这个结果,还是超时了吗

fan1993423 发表于 2020-3-27 18:36:26

zltzlt 发表于 2020-3-27 18:33
输入以下数据超时:

在测一下,是不是有什么问题

suchocolate 发表于 2020-3-28 12:13:43

蒋博文 发表于 2020-3-23 18:37
本帖最后由 蒋博文 于 2020-3-24 09:58 编辑

hello
可以讲解一下程序的逻辑思路吗,我们学习学习。
页: 1 2 3 [4] 5
查看完整版本: Python:每日一题 358