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.
Example 1:
Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1].
Example 2:
Input: nums = [3,2,4], target = 6 Output: [1,2]
Example 3:
Input: nums = [3,3], target = 6 Output: [0,1]
Constraints:
2 <= nums.length <= 105
-109 <= nums[i] <= 109
-109 <= target <= 109
- Only one valid answer exists.
此题意为给一组数组nums,和一个目标数target,从数组中找到两个数,它们的和等于target的值,并返回这两个数在nums的下标。
以下有两种解法,
第一种是暴力破解,用两个for循环遍历,先遍历数组nums的第一个数,然后往后遍历有没有数可以和这个数相加之和为target的,有则退出循环,没有遍历数组nums的第二个数,以此类推;
第二种解法是利用hashmap来解决,把数组nums的值放在key值上,对应的下标放在value值,后面再遍历数组的时候,判断map上是否存在key为target-nums[i]的值,切i不等于target-nums[i],符合则跳出循环并返回。
解法一:
public int[] twoSum(int[] nums, int target) { int result[] = new int[2]; int m=0,n=0; for(int i=0;i<nums.length;i++){ for(int j =i+1;j<nums.length;j++) { if (nums[i] + nums[j] == target) { m=i; n = j; break; } } } result[0]=m; result[1]=n; return result; }
时间复杂度为0(n^2),空间复杂度为0(1)
解法二:
public static int[] twoSum(int[] nums, int target) { int result[] = new int[2]; Map<Integer,Integer> map = new HashMap<>(); for(int i=0;i<nums.length;++i){ map.put(nums[i],i); } for(int j=0;j<nums.length;++j){ if(map.get(target-nums[j]) != null && j != map.get(target-nums[j])){ result[0] = j; result[1] = map.get(target-nums[j]); break; } } return result; }
时间复杂度为0(n),空间复杂度为0(n)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)