python中两个数组相加,python中怎么实现两个数相加
本文主要介绍python如何添加两个数组元素,有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
00-1010数组元素加两对求数组中两对的组合等于20 (Python实现)主题分析Python实现
目录
计数=0
c2=[]
对于范围内的I(透镜(c)):
如果计数==0:
mm=c[i]
#打印(毫米)
#打印(计数)
如果计数==1:
打印(c[i])
值=c[i] mm
c2=np.append(c2,value)
计数=0
mm=0
值=0
继续
计数=计数1
c是原始数组,我们设置一个计数。当count=0时,我们不操作。当count=1时,我们将当前元素与前一个元素相加。
Count=0其实是奇数,count=1是偶数。
数组元素两两相加
求数组中两两相加等于20的组合(Python实现)
找出数组中两个配对的组合,其总和为20。
例:给出了一个数组[1,7,17,2,6,3,14]。这个数组中有两对满足条件:17 ^ 3=20,6 ^ 14=20。
题目
分为两个步骤:
通过堆排序或快速排序对数组进行排序的时间复杂度为O(nlogn)。然后分别从前到后和从后到前遍历排序后的数组,时间复杂度为O(n)。假设从前向后遍历的下标是begin,从后向前遍历的下标是end。
arr[begin] arr[end] 20时,满足条件的个数必须在[begin 1,end]之间;arr[begin] arr[end] 20时,满足条件的个数必须在[begin,end-1]之间;当arr[begin] arr[end]=20时,求一组合格数,其余组合必须在[begin-1,end-1]之间。整个算法的时间复杂度为O(nlogn)。
解析
# -*-编码:utf-8 -*-
def快速排序(arr,left,right):
快速排序
如果左=右:
返回
低=左
高=右
p=arr[left]
而左右:
而左右和arr[right]=p:
右-=1
arr[左]=arr[右]
而左右和arr[left]=p:
左=1
arr[右]=arr[左]
arr[left]=p
quick_sort(arr,low,left-1)
quick_sort(arr,left 1,high)
定义find_sum(arr,sum):
在数组中查找加起来等于sum的组合
quick_sort(arr,0,len(arr) - 1)
begin,end=0,len(arr) - 1
当开始结束时
if arr[begin] arr[end] sum:
begin=1
elif arr[begin] arr[end] sum:
end -=1
else:
print(%s %s % (arr[begin],arr[end]))
begin=1
end -=1
if __name__==__main__:
arr=[1,7,17,2,6,3,14]
find_sum(arr,20)
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。