首页 > 其他 > 详细

第一篇,2sum

时间:2015-10-16 06:16:43      阅读:243      评论:0      收藏:0      [点我收藏+]
 1 public class Solution {
 2     public int[] twoSum(int[] nums, int target) {
 3       int[] result = {-1, -1};
 4       if (nums == null || nums.length < 2) {
 5         return result;
 6       }
 7       HashMap<Integer, Integer> map = new HashMap();
 8       for (int i = 0; i < nums.length; i++) {
 9         if (map.containsKey(target - nums[i])) {
10           result[0] = map.get(target - nums[i]) + 1;
11           result[1] = i + 1;
12           break;
13         }
14         map.put(nums[i], i);
15       }
16       return result;
17     }
18 }

最高频面试题2sum

一道做烂了的题目多想想还是有很多值得注意的地方

这里遍历一次,一边加一边找的做法很好。如果不需要返回下标也可以排序后双指针夹逼

本文代码时间复杂度O(N), 空间复杂度O(N)

排序夹逼做法时间O(NlogN), 空间O(1)

第一篇,2sum

原文:http://www.cnblogs.com/ilovenaomi/p/4884136.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!