TJBEST 发表于 2020-1-22 20:28:15

楼主先不要封题,我想到一个方法,可能比较快,一会受累测一下啊{:5_109:}

zltzlt 发表于 2020-1-22 20:29:13

TJBEST 发表于 2020-1-22 20:28
楼主先不要封题,我想到一个方法,可能比较快,一会受累测一下啊

收到

TJBEST 发表于 2020-1-22 20:40:37

楼主试试这个,我感觉不算慢{:5_109:}
def fun312(arr):
    if arr == []:
      return 0
    res = 0
    N = len(arr)
    for i in range(0,N//2):
      alpha = (i + 1)*(N - i)
      res = res + (arr + arr)* alpha
    if N % 2:
      alpha = (N//2 + 1)*(N - N//2)
      res = res + arr*alpha
    return res

zltzlt 发表于 2020-1-22 20:42:44

TJBEST 发表于 2020-1-22 20:40
楼主试试这个,我感觉不算慢

1217 ms

阴阳神万物主 发表于 2020-1-22 22:28:29

zltzlt 发表于 2020-1-22 14:40
解答错误

输入:


汗~是我疏忽了……
def solve(lst):
    res = times = 0
    while len(lst)>1:
      times += len(lst)
      res += (lst+lst[-1]) * times
      #print('调试',lst,lst[-1],times)
      lst = lst
    else:
      if lst:
            res += lst*(times+1)
    return res
if __name__ == '__main__':
    print('示例1 输出:',solve())
    print('示例2 输出:',solve())

newbison 发表于 2020-1-23 08:46:44

改善了一下,不用递归了。def func312(array):
    l, res = len(array), 0
    for i in range(0, l):
      for j in range(i+1, l+1):
            for each in array:
                res += each
    return res
print('array 的答案是: ', func312())
print('array 的答案是: ', func312())
print('array 的答案是: ', func312())

_2_ 发表于 2020-1-23 12:31:08

Croper 发表于 2020-1-22 14:51
写成一行的版本

厉害厉害

fan1993423 发表于 2020-1-23 15:03:15

Croper 发表于 2020-1-22 14:51
写成一行的版本

这应该是这道题最好的解法了

wanting-for 发表于 2020-1-23 18:04:02

def add(num:int,length,list1):
    list2 = []
    for i in range(length):
      if i+num<=length:
            list2.append(sum(list1))
    return list2
def solve_312(list1:list):
    lenght = len(list1)
    sum_list = []
    for i in range(1,lenght):
      sum_list.extend(add(i,lenght,list1))
    return sum(sum_list)+sum(list1)
print(solve_312())
一把梭子直接干,暴力解决,完事收工!{:9_237:}
请楼主帮忙测试一下,非常感谢!!!
昨天忙,没带电脑,今天补上!

776667 发表于 2021-3-30 17:04:12

def fun312(x):
    sub_array = []
    for i in range(len(x)):
      for j in range(i+1,len(x)+1):
            sub_array.append(x)
    return sum()
页: 1 [2]
查看完整版本: Python:每日一题 312