基础数据结构之哈希表:两数之和(LeetCode 1 简单题)

这是LeetCode的第一题,也是哈希表应用的经典例子。

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

优化思路

● 暴力解法: O(n²),两层循环

● 哈希表: O(n),用空间换时间,只需遍历一次

暴力解法

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

哈希表

python 复制代码
# 方法:数组中的每个数挨个看我的小本本上有没有记录让这俩数结合起来得到最终值,
    # 1.1有则说明这俩数已经找到了。
    # 1.2没则说明这个数还没,那我就存到小本子上,直到我所有的数都存到小本子上。
# 如果到所有数都记到本子上也没发现俩数满足要求,那说明这个数组就找不到
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hash = {}
        for i,num in enumerate(nums):
            completion = target - num
            if completion in hash:
                return [hash[completion],i]
            hash[num] = i
相关推荐
小白兔奶糖ovo18 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
过期动态19 小时前
【LeetCode 热题 100】接雨水
java·数据结构·算法·leetcode·职场和发展
青山师19 小时前
动态规划算法深度解析:从状态转移方程到工业级优化
数据结构·算法·面试·动态规划·代理模式·java面试
Severus_black21 小时前
【初阶数据结构与算法】八大排序之非比较排序(计数排序),一次性讲清!
数据结构·算法·排序算法
QiLinkOS1 天前
从技术到资产的跃迁:企业专利布局的深层逻辑
c语言·数据结构·c++·单片机·嵌入式硬件·算法·开源
影寂ldy1 天前
C#Dictionary字典
数据结构
圣保罗的大教堂1 天前
leetcode 3300. 替换为数位和以后的最小元素 简单
leetcode
sheeta19981 天前
LeetCode 每日一题笔记 日期:2026.05.27 题目:3121. 统计特殊字母的数量 II
笔记·算法·leetcode
Tisfy1 天前
LeetCode 3300.替换为数位和以后的最小元素:一次遍历
数学·算法·leetcode·模拟
Lucky_ldy1 天前
数据结构从入门到精通:顺序表
数据结构·链表