【简单】两数之和---Two Sum

【难度】简单
【题目】在这里插入图片描述来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
【思路】遍历数组,先定位到一个数x,然后再遍历数组,从数组中的其他数找到y,使target-x=y(或x+y=target)
【代码】

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]: 
        for i in range(len(nums)):
            for j in range(i+1,len(nums)):
                if target - nums[i] == nums[j]:
                    return [i,j]

【解释】
网站写好了开头

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]: 

这行代码已经定义了数组nums和target,所以不需要再一次地定义。
【笔记】
(1)输入数组

nums=[int(n) for n in input().split()]

(2)解释双重循环

for i in range(len(nums)):
    for j in range(i+1,len(nums))

第一重循环是重头开始遍历数组中的元素,第二重循环
是从第一重循环定位的元素的下一位开始遍历。
【优化】
(PS:参考网络上的代码)

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]: 
        for i in range(len(nums)):
           if target - nums[i]  in nums:
               if i!= nums.index(target - nums[i]):  #第二个判断条件:同一个元素不能使用两遍
                   return[i,nums.index(target-nums[i])]

使用了list+in的方法来优化,用in去查找数组中的元素
在这里插入图片描述
【其他】
因为我还没有看过数据结构和算法的知识,所以暂时不能用哈希表之类的方法求解,等我有了这方面的知识以后,会继续回来补充

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值