我是靠谱客的博主 俏皮钢笔,最近开发中收集的这篇文章主要介绍力扣Leetcode1 | 两数之和(Two Sum)暴力法、一次哈希表和两次哈希表法双指针法扩展,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
目录
- 暴力法、一次哈希表和两次哈希表法
- 双指针法
- 扩展
暴力法、一次哈希表和两次哈希表法
https://blog.csdn.net/zhushaojiecumt/article/details/102846196
视频:
https://www.bilibili.com/video/BV1Li4y1E7gT?p=1
双指针法
如果列表是无序的,需要先排序,使用双指针,分别指向头、尾。如果两数之和大于target,尾指针前移,如果两数之和小于target,首指针后移。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
r=zip(nums,range(len(nums)))
r = sorted(r, key=lambda x:x[0])
i, j=0,len(nums)-1
while i<j:
sum=r[i][0]+r[j][0]
if sum<target:
i+=1
elif sum>target:
j-=1
else:
break
return [r[i][1],r[j][1]]
leetcode——两数之和(暴力,一遍hash,两遍hash,双指针)
nums = list(enumerate(nums))
nums.sort(key = lambda x:x[1])
i,j = 0, len(nums)-1
while i < j:
if nums[i][1] + nums[j][1] > target:
j -= 1
elif nums[i][1] + nums[j][1] < target:
i += 1
else:
if nums[j][0] < nums[i][0]:
nums[j],nums[i] = nums[i],nums[j]
return num[i][0],nums[j][0]
https://zhuanlan.zhihu.com/p/203068013
双指针(方法合集) 逐行解释 python3
扩展
假如不能用现成的hashMap结构,如何自己实现?
双指针法适用的问题有哪些?
两数之和、(接近)三数之和、四数之和的问题?
【leetcode 逐题讲解】 0001 Two sum 力扣 两数之和,讲解了如何实现hashMap
双指针法(N数之和)
【python-leetcode15-双指针】最接近的三数之和
两数之和(two sum)问题通用解法(map法和双指针)
两数之和——双指针法
Python|双指针解决三数之和问题
最后
以上就是俏皮钢笔为你收集整理的力扣Leetcode1 | 两数之和(Two Sum)暴力法、一次哈希表和两次哈希表法双指针法扩展的全部内容,希望文章能够帮你解决力扣Leetcode1 | 两数之和(Two Sum)暴力法、一次哈希表和两次哈希表法双指针法扩展所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复