LeetCode每日一题——T1. 两数之和(易):三种解法:暴力循环、两遍哈希表、一遍哈希表
2019-06-25 19:18
323 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41514090/article/details/93645547
要点:enumerate()函数、len()函数、创建空字典:_dict = {}、哈希表用法:_dict.get(值)
# 1、暴力解法:
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i, m in enumerate(nums): for j in range(i, len(nums)): if (nums[j] == target - m): return [i, j] # enumerate: 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串), 将其组成一个索引序列,利用它可以同时获得索引和值;如上,i是索引,m是值
# 2、两遍哈希表:
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: # 定义空字典,用以模拟哈希表 _dict = {} for i, m in enumerate(nums): _dict[m] = i for i, m in enumerate(nums): j = _dict.get(target - m) if j is not None and j != i: return[i, j]
# 3、一遍哈希表:
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: _dict = {} for i, m in enumerate(nums): if _dict.get(target - m) is not None: return [_dict.get(target - m), i] _dict[m] = i
相关文章推荐
- 算法导论第三版第四章 最大子数组和的三种解法(暴力、教材分治法、线性解法)
- Sort Colors [leetcode] 扫描数组一遍,O(1)空间复杂度的解法
- leetcode: power of three 三种解法
- 凸包(Convex Hull)问题的三种解法: 暴力,Graham Scan,分治
- 算法导论第三版第四章 最大子数组和的三种解法(暴力、教材分治法、线性解法)
- leetcode之349. Intersection of Two Arrays (C++解法 哈希表和vector)
- LeetCode每日一题 008 两数之和
- 算法导论第三版第四章 最大子数组和的三种解法(暴力、教材分治法、线性解法)
- LeetCode 28 实现 strStr() C++ KMP解法 内置函数解法 原始暴力解法
- 利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个提示灯依次一个一个闪动,闪动频率为10次每秒(8个灯亮一遍为一个周期),循环
- 编程集训第1天:LeetCode两数和及欢乐数C++代码实现(哈希表)
- Leetcode: Valid Number的三种解法
- LeetCode每日一题——T20. 有效的括号(易):栈、哈希表
- leetcode每日一题,两数之和
- [LeetCode] Remove Element (三种解法)
- LeetCode 19之Remove Nth Node From End of List的Java题解(三种解法)
- leetcode 5:Longest Palindromic Substring 三种解法的java实现源代码,以及详细讲解
- leetcode160 两数之和 II - 输入有序数组--解法
- [LeetCode] Binary Tree Upside Down的三种解法
- HDOJ1014 Uniform Generator 【三种解法(暴力+互质)】