python - 为什么我的 Sum 算法卡在一个循环中/需要很长时间?
问题描述
我是算法世界的新手,并且在学习了一些之后尝试编写自己的算法。我试图找出数组中两个数字的总和是否等于目标值。问题是它不断循环,我将非常感谢一些帮助,因为我似乎无法看到它是什么。
arr = [1,2,3,4,4]
target = 8
def findSum(arr, target):
if len(arr) <= 1:
return False
low = 0
high = len(arr) - 1
while low <= high:
for i in range(low, high):
for j in range(high, low, -1):
if (arr[i]+arr[j]) == target:
return(arr[i], arr[j])
elif (arr[i]+arr[j]) > target:
high -= 1
else:
low += 1
return False
findSum(arr, target)
PS 对未注释的代码感到抱歉,我认为它的简单性没有必要。
解决方案
你做错了,你可能想试试这个,
arr = [1,2,3,4,4]
target = 8
def findSum(arr, target):
start = 0
end = len(arr) - 1
while start < end:
if arr[start] + arr[end] == target:
return (arr[start], arr[end])
elif arr[start] + arr[end] < target:
start += 1
else:
end -= 1
return False
print(findSum(arr, target))
输出:
(4, 4)
推荐阅读
- c++ - MV Studio C++ - 二维数组不适用于文件
- javascript - 如何将 div 绝对定位在主目录之外?
- excel - DAX 筛选器上下文
- c - Printf 一个字符串(在 C 中)
- node.js - 在 Alexa 上按电台名称流式传输 URL
- php - .htaccess 检查客户端是否不请求 index.php
- graphql - 如何将大的graphql模式文件分成多个小文件?
- python - 为什么这段代码说两个系列比实际更相似
- java - 弹性搜索索引包含并以搜索开头
- ruby-on-rails - rails:优化对单个 sql 查询的 ar 关系的多个 map 调用?