电商设计素材网站推荐,那些钓鱼网站是怎么做的,注册公司流程和费用联系人,淮南做网站公司文章目录 题目思路1思路2 题目 给定一个整数数组 nums 和一个整数目标值 target#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是#xff0c;数组中同一个元素在答案里不能重复… 文章目录 题目思路1思路2 题目 给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1 输入nums [2,7,11,15], target 9 输出[0,1] 解释因为 nums[0] nums[1] 9 返回 [0, 1] 。 示例 2 输入nums [3,2,4], target 6 输出[1,2] 示例 3 输入nums [3,3], target 6 输出[0,1] 提示 2 nums.length 104 -109 nums[i] 109 -109 target 109 只会存在一个有效答案 进阶你可以想出一个时间复杂度小于 O ( n 2 ) O(n^2) O(n2) 的算法吗 思路1 两层循环遍历整个数组如果他们的和为target则返回索引 class Solution:def twoSum(self, nums: List[int], target: int) - List[int]:for i in range(len(nums)):for j in range(i1,len(nums)):if nums[i] nums[j] target:return [i , j]return 1思路2 创建一个字典记录所有已经访问过的数字遍历所有nums的值如果当前 target - nums[i] 可以在字典中被找到说明数组中存在两个数的和为target返回这两个数即可 时间复杂度 n ( n ) n(n) n(n) 空间复杂度 n ( n ) n(n) n(n) class Solution:def twoSum(self, nums: List[int], target: int) - List[int]:m {}for i in range(len(nums)):if target - nums[i] in m:return [m[target - nums[i]],i]m[nums[i]] ireturn 1