leetcode刷题总结一
1.TWO SUM
题目描述:Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
You can return the answer in any order.
思路分析1(我的思路):在给定的元素里,两次遍历,第一轮选定一个元素,第二轮在剩下的元素中找寻是否有与它相加等于目标值的元素
代码
class Solution:
def twoSum(self, nums: List[int], target: int):
length = len(nums)
result = []
for i in range(length):
for j in range(i,length):
if i == j:
continue
if nums[j]+nums[i] == target:
result = [i,j]
break
return result
我 的 解 法 是 没 啥 含 量 的 暴 力 破 解 法 , 时 间 复 杂 度 为 O ( n 2 ) 我 的解法是没啥含量的暴力破解法,时间复杂度为O(n^{2}) 我的解法是没啥含量的暴力破解法,时间复杂度为O(n2)
思路分析2(字典解法)
第二种解法是用python中数据结构字典(哈希表)实现的,想法是
首先将第一个元素的下标为值,大小为键存入字典中,然后向后遍历,用目标值减去遍历到的元素,如果发现结果不在字典中,就将遍历到的元素和它的下标存入字典中,如果发现表中已有该元素,就输入它们的下标
代码
class Solution:
def twoSum(self