题解 | #和为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
        # 第一遍遍历,记下sum-arry的值
        # 第二遍,查找
        # sub = []
        # for i in range(len(array)):
        #     if array[i] in sub :
        #         return [sum - array[i], array[i]]
        #     sub.append( sum - array[i])
        # return []

        # 上面的答案超时了
        # 注意题目条件:升序数组
        # 双指针,一个从前往后,一个从后往前
        if len(array)<=1:
            return []
        i = 0 
        j = len(array)-1
        while i < j:
            temp = array[i] + array[j]
            if temp == sum:
                return [ array[i], array[j]]
            elif temp < sum:
                i += 1
            elif temp > sum:
                j -= 1
        return []

全部评论

相关推荐

06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
07-04 21:23
已编辑
东莞城市学院 后端
秋招和春招只收到几个中大厂的笔试,本人比较菜,感觉大厂的笔试太难,算法题不能全部做出来就没过了,但是CVTE和小天才的感觉不是很难,基本上都做出来了,笔试还是挂了。Boss上投了Java后端开发都没有回音,boss上有面试机会都是C#工控软件开发方向的,但是这个方向不太懂,资料又少,面试的表现有点差,现在还是想看看Java这边,面试的时候比较有把握点。想请教一下,这份简历还有什么问题,一直没什么机会,还有什么地方要修改的。
程序员小白条:学历太差,民办和公办,外包还得区分的,这个学历+这个简历,没的办法,除非你有人脉,太难了,这环境,何况你都毕业了,连一段实习都没,肯定没公司会挑选了,没竞争力,开发才招几个人,跟你竞争的可不是二本,三本的人哦,何况你在二本,三本里面也排名不高
投递小天才等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务