LeetCode1. python实现:两数之和问题☆
2019-02-26 16:20
246 查看
问题:
给定一个整数数组
nums和一个目标值
target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
[code]给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
程序实现
哈希实现(效率高)
[code]class Solution(object): # 哈希实现(效率高) def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ dict = {} for i in range(len(nums)): temp = target - nums[i] if temp in dict: return [dict[temp],i] dict[nums[i]] = i
# 双指针实现(效率低)
[code] def twoSum2(self, nums, target): newnums = nums[:] newnums.sort() result = [] start = 0 end = len(nums)-1 while start < end: if newnums[start]+newnums[end] == target and start != end: for i in range(len(nums)): if newnums[start] == nums[i]: result.append(i) if newnums[end] == nums[i] and i !=result[0]: result.append(i) elif newnums[start]+newnums[end]>target: end -=1 elif newnums[start]+newnums[end]<target: start +=1 return result.sort()
相关文章推荐
- LeetCode3. python实现:无重复字符的最长子串问题☆☆
- LeetCode33.python实现: 搜索旋转排序数组问题☆☆
- LeetCode9.python实现: 回文数问题☆
- LeetCode16. python实现:最接近的三数之和问题☆☆
- LeetCode344.python实现: 反转字符串问题☆
- LeetCode21.python实现: 合并两个有序链表问题☆
- leetcode 2. Add Two Numbers python实现的理解,结点,单链表的应用,大数,进位的问题
- LeetCode215. python实现:数组中的第K个最大元素问题☆☆
- 0-1背包问题+Leetcode[132] python实现
- LeetCode66.python实现: 加一问题☆
- LeetCode217.python实现: 存在重复元素问题☆
- LeetCode292.Python实现: Nim游戏问题☆
- leetcode第一题两数之和python实现
- LeetCode4.python实现:寻找两个有序数组中的中位数问题☆☆☆
- LeetCode5.python实现:最长回文子串问题☆☆
- LeetCode14. python实现:最长公共前缀问题☆
- LeetCode26. python实现:删除排序数组中的重复项问题☆
- LeetCode557.python实现: 反转字符串中的单词 III问题☆
- LeetCode53.python实现: 最大子序和问题☆
- LeetCode169.python实现: 求众数问题☆