Python怎样实现数组中元素相加计算
Admin 2022-09-01 群英技术资讯 666 次浏览
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实现索引排序功能,小编觉得是比较有意思的,因此与大家分享一下,下面我们就一起来看看具体的实现吧。
APScheduler的全称是Advanced Python Scheduler,它是一个轻量级的 Python 定时任务调度框架,下面这篇文章主要给大家介绍了关于Python定时库APScheduler的原理以及用法的相关资料,需要的朋友可以参考下
这篇文章主要介绍基于python实现自动下载文件sftp的内容,实现功能和需求、以及具体的实现代码如下,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
本文主要介绍如何利用Springboot框架调用python脚本,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文和你一起探索Python中的lambda函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008