和为S的两个数字(python)
程序员文章站
2024-03-15 21:26:06
...
题目
解法
解法1 双指针
# -*- coding:utf-8 -*-
class Solution:
def FindNumbersWithSum(self, array, tsum):
"""
从左右一起查找
因为当两个数的和一定的时候, 两个数字的间隔越大, 乘积越小
所以直接输出查找到的第一对数即可
:param array: 递增排序的数组
:param tsum: 目标值
"""
# write code here
if not array or not tsum:
return []
head = 0
tail = len(array)-1
while head < tail:
cur_sum = array[head]+array[tail]
if tsum == cur_sum:
return [array[head],array[tail]]
elif cur_sum <tsum:
head = head + 1
else:
tail = tail -1
return []
if __name__ == '__main__':
test = [1, 2, 4, 7, 11, 15]
s = Solution()
print(s.FindNumbersWithSum(test, 15))
推荐阅读
-
和为S的两个数字(python)
-
【刷算法】和为S的两个数字
-
1.leetcde:在一个正整数数组中找到和为某个值的两个整数下标集合
-
给定一个整数,在一个整数数组中找到两个下标不同的元素,其和为给定的整数
-
《剑指offer》-递增数组中找到和为S的(最小)两个元素
-
给定一个乱序数组a,找到所有两个和为target的数组下标index1,index2
-
LeetCode题解(0039):在不重复数组中找到和为目标数的所有组合(Python)
-
LeetCode题解(0040):在不重复数组中找到和为目标数的所有组合(每个数字只能用一次)(Python)
-
原生python和anaconda下的python两个环境共存的解决方法
-
滴滴出行2017秋招笔试真题-编程题汇总 [编程题]数字和为sum的方法数