题解 | #和为S的两个数字#

和为S的两个数字

https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param array int整型一维数组 
# @param sum int整型 
# @return int整型一维数组
#
class Solution:
    def FindNumbersWithSum(self , array: List[int], sum: int) -> List[int]:
        # write code here
		'''
		定义2个指针i,j i从数组的最前面开始,
		j从数组的最后面开始,遍历数组,如果和比sum小,将i调大,如果和比sum大,将j的值调小
		结束遍历的条件是i>=j
		'''
        i = 0
        j = len(array)-1
        while i<j:
            if array[i]+array[j]==sum:
                return [array[i],array[j]]

            elif array[i] + array[j]<sum:
                i+=1
        
            elif array[i] + array[j]>sum:
                j-=1
        return []

全部评论

相关推荐

点赞 收藏 评论
分享
正在热议
牛客网
牛客企业服务