Python怎样实现数组中元素相加计算
Admin 2022-09-01 群英技术资讯 416 次浏览
count = 0 c2 = [] for i in range(len(c)): if count == 0: mm = c[i] #print(mm) #print(count) if count == 1: print(c[i]) value = c[i] + mm c2 = np.append(c2,value) count = 0 mm = 0 value = 0 continue count = count + 1
c是原数组,我们设置一个count,当count=0时我们不操作,count=1时我们把当前元素与前一元素相加。
count=0其实相当于奇数,count=1相当于偶数
求数组中两两相加等于20的组合。
例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20。
分为两个步骤:
假设从前到后遍历的下标为begin,从后到前遍历的下标为end。
整个算法的时间复杂度为O(nlogn)。
# -*- coding:utf-8 -*- def quick_sort(arr, left, right): """快速排序""" if left >= right: return low = left high = right p = arr[left] while left < right: while left < right and arr[right] >= p: right -= 1 arr[left] = arr[right] while left < right and arr[left] <= p: left += 1 arr[right] = arr[left] arr[left] = p quick_sort(arr, low, left-1) quick_sort(arr, left+1, high) def find_sum(arr, sum): """寻找数组中相加等于sum的组合""" quick_sort(arr, 0, len(arr) - 1) begin, end = 0, len(arr) - 1 while begin < end: 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)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了python如何为list实现find方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了Python流程控制if条件选择与for循环,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
csv文件与txt文件类似,区别点就是在csv文件中,字段间使用“,”或“|”隔开,达到类似与表格的效果,下面这篇文章主要给大家介绍了关于如何利用python创建、读取和修改CSV数据文件的相关资料,需要的朋友可以参考下
内容介绍Python中插入图片绘制子图绘制1*2的子图绘制2*2的子图绘制不规则子图绘制图中代码frommatplotlibimportpyplotaspltplt.style.use('
本章内容概要1.多层装饰器2.有参装饰器3.递归函数4.算法(二分法)本章内容详解1.多层装饰器1.1什么是多层装饰器多层装饰器是从下往上依次执行,需要注意的是,被装饰的函数名所指代的函数是一直被装饰器中的内层函数所取代。1.2语法糖的功能会自动将下面紧挨着的函数名...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008