网站首页 > 技术教程 正文
在leetcode(https://leetcode-cn.com/)上看到一道有趣的算法题:
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[2,7] 或者 [7,2]
示例 2:
输入:nums = [10,26,30,31,47,60], target = 40
输出:[10,30] 或者 [30,10]
限制:
- 1 <= nums.length <= 10^5
- 1 <= nums[i] <= 10^6
这样的题你会怎么用java实现呢?
分享一下我的解题思路:
public 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++){
if(nums[i]>=target){
break;
} else{
int key=target-nums[i];
if(map.get(key)!=null){
result[0]=nums[i];
result[1]=nums[map.get(key)];
return result;
}
map.put(nums[i],i);
}
}
for (int i=0;i<nums.length;i++){
int key=target-nums[i];
if(map.get(key)!=null){
result[0]=nums[i];
result[1]=nums[map.get(key)];
break;
}
}
return result;
}
结果:
输入:[2,7,11,15] 9
输出:[2,7]
leetcode上对该答案的分析如下:
36 / 36 个通过测试用例
状态:通过
执行用时: 54 ms
内存消耗: 57.7 MB
执行用时分布图表
执行消耗内存分布图表
大家有更好的解题思路吗?欢迎在评论区作答哈~
猜你喜欢
- 2024-11-12 【Java面试】OOM你遇到过哪些情况,SOF你遇到过哪些情况?
- 2024-11-12 Java干货:InetAddress基本操作演示
- 2024-11-12 Redis 哈希表 VS Java HaspMap , 哪家强?
- 2024-11-12 Java历史上接口的演变(java接口通俗理解)
- 2024-11-12 鸿蒙系统中的 JS 开发框架(js开发鸿蒙app)
- 2024-11-12 Java和JavaScript有什么区别?(javascript和java区别大吗)
- 2024-11-12 初识sa-token,一行代码搞定登录授权
- 2024-11-12 Java读取XML文件缺少部分字符串(java读取xml文件中的内容)
- 2024-11-12 Java的虚拟线程如何帮助您的业务?
- 2024-11-12 Clojure vs Java:少数据结构、多函数胜过多个单独类的优点
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)