Python中定义一个整数数组,找出连续3个元素之和是最大的,并输出这三个元素。
滚动数组,虽然只有三个元素区别不明显,但重复的加法是不必要的
nums = [3,1,4,1,5,9,2,6,5,3,5,8,9]
maxs = s = sum(nums[:3])
res = nums[:3]
for i in range(3, len(nums)):
s = s + nums[i] - nums[i-3]
if s > maxs:
maxs = s
res = nums[i-2:i+1]
print(res)
该回答引用GPT:
答:可以使用以下代码:
arr = [1,2,3,4,5,6,7,8,9]
max_sum = 0
for i in range(len(arr)-2):
sum = arr[i] + arr[i+1] + arr[i+2]
if sum > max_sum:
max_sum = sum
max_arr = [arr[i], arr[i+1], arr[i+2]]
print("最大的三个元素为:", max_arr)
输出结果为:最大的三个元素为:[7, 8, 9]
如还有疑问,可留言帮助解决。
例如: 输入:[8,1,9,3,2,4],那么其最长连续序列是[1,2,3,4],即输出长度为4
问题简单,但是要考虑时间复杂度为O(n),比较复杂一些。