LeetCode热题100-两数之和

Python3实现:

  • 暴力解法:时间复杂度n2,空间复杂度1
python 复制代码
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        if not nums and len(nums) > 2:
            raise Exception("输入数据格式有误!")
        length = len(nums)
        for i, num in enumerate(nums):
            for j in  range(i + 1, length):
                if nums[i] + nums[j] == target:
                    return [i, j]
        return []

关注点:range为左闭右开,enumerate可以设定索引开始值。

  • hash方法:时间复杂度n,空间复杂度n
python 复制代码
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        if not nums and len(nums) > 2:
            raise Exception("输入数据格式有误!")
        des_dict = {}
        for i in range(len(nums)):
            dif = target - nums[i]
            if dif in des_dict.keys():
                return [des_dict[dif], i]
            des_dict[nums[i]] = i
        return []   

这种算是哈希表的变形实现,使用了字典当作hash表。

相关推荐
alphaTao20 分钟前
LeetCode 每日一题 2026/7/20-2026/7/26
算法·leetcode
龙虾PRO22 分钟前
能源与股票量化核心差异,AI全链路落地实操手册
java·面试·职场和发展
圣保罗的大教堂1 小时前
leetcode 3514. 不同 XOR 三元组的数目 II 中等
leetcode
wdfk_prog4 小时前
嵌入式面试真题第 12 题:资源受限长期运行系统的确定性内存管理与内存池架构设计
考研·面试·职场和发展
青山木4 小时前
Hot 100 ---腐烂的橘子
java·数据结构·后端·算法·leetcode·广度优先
未来之窗软件服务4 小时前
计算机考试-快速排序—东方仙盟
数据结构·算法·排序算法·仙盟创梦ide·东方仙盟
小龙报4 小时前
【优选算法】1. 水果成蓝 2.找到字符串中所有字母的异位词
java·c语言·数据结构·数据库·c++·redis·算法
txzrxz5 小时前
数论:排列数、组合数、费马小定理、逆元、同余定理
c++·算法·数论·组合数·费马小定理·逆元·排列数
xqqxqxxq5 小时前
LeetCode Hot100 双指针专项题解笔记
笔记·算法·leetcode
闪电悠米5 小时前
力扣hot100-54.螺旋矩阵-模拟边界控制详解
算法·leetcode·矩阵