暴力求解字典模拟哈希表求解
Leetcode 1: 两数之和(python)
注:本人文章中内容中来自于各大佬的经验总结,仅供自身复习及学习,并无商业用途,若有时忘记标注作者及出处还请提醒,敬请见谅。
暴力求解暴力求解最直观,即通过多次循环遍历寻找符合条件的数值对,但是它的耗时比较长,不是特别推荐。
def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i+1, n): if nums[i] + nums[j] == target: return [i,j]字典模拟哈希表求解
这里参考了题解中大神的求解方法,突然发现哈希表在数组问题中有着挺大的作用。使用字典之后算法的效率和空间明显提升了很多。
def twoSum(nums, target): hashmap={} for ind,num in enumerate(nums): hashmap[num] = ind for i,num in enumerate(nums): j = hashmap.get(target - num) if j is not None and i!=j: return [i,j] 作者:lao-la-rou-yue-jiao-yue-xiang 链接:https://leetcode-cn.com/problems/two-sum/solution/xiao-bai-pythonji-chong-jie-fa-by-lao-la-rou-yue-j/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)