【力扣100】1.两数之和__231206

两数之和

第一次题解:

python 复制代码
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        #思路是for循环第一个数然后在数组中找差值
        for i in range(0,len(nums)-1):
            second_value=target-nums[i]
            for j in range(i+1,len(nums)):
                if nums[j]==second_value:
                    return [i,j]

思路:两个for循环,找元素

还有一种方法:

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

也是两层for循环


使用哈希表解法:

python 复制代码
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashtable={}
        for index,value in enumerate(nums):
            # in hashtable 判断的是键集合
            if target-value not in hashtable:
                # 因为本题返回下标,所以键放数值,值放下标
                hashtable[value]=index
            else:
                return [hashtable[target-value],index]

时间复杂度:n

这里有两个要注意的点:

1.enumerate():

返回可迭代的index和values

可以使用enumerate的是:列表,元组和字符串

2. x in hashtable:

这里比较的是x是不是在hashtable的键集合

相关推荐
王老师青少年编程5 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【反悔贪心】:建筑抢修
c++·算法·贪心·反悔贪心·csp·信奥赛·建筑抢修
TianFuRuanJian6 小时前
科普 | 仿真中的“体力活”:网格验证能不能自动化?
算法·仿真·ai网格
leoufung6 小时前
LeetCode 135. Candy:从直觉到最优解的完整推导
算法·leetcode·职场和发展
WHS-_-20226 小时前
Tensor-Based Target Sensing for Resource-Irregular ISAC Systems
linux·人工智能·算法
成都易yisdong6 小时前
高程异常计算器:一款集成Geoid、重力场与地磁场的专业工具
算法
王老师青少年编程6 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【反悔贪心】:种树
c++·算法·贪心·反悔贪心·csp·信奥赛·种树
南宫萧幕6 小时前
基于 PSO 的 HEV 能量管理策略:从联合仿真建模到排错实战
开发语言·python·算法·matlab·控制
生物信息与育种7 小时前
全基因组重测序及群体遗传与进化分析技术服务指南
人工智能·深度学习·算法·数据分析·r语言
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题】【Java基础篇】第23题:ConcurrentHashMap的底层原理是什么
java·开发语言·算法·哈希算法·散列表·hash
葳_人生_蕤7 小时前
hot100——回溯和DFS、BFS
算法·深度优先