码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode]-001-Two Sum

时间:2015-04-27 21:56:37      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

网址: https://leetcode.com/problems/two-sum/

题意:

给一组数,给一个目标值.

这组数里有2个数的和等于目标值,求出这两个数的下标.

提示:

下标从1开始

明确一定有答案

分析:

一定有答案,从而不用对特殊情况进行考虑.

比如:

(1)一组数的长度小于2.

(2)没有答案

(3)和值等于2个相同下标的数的和

解法:

想法1:

排序,2个index,1个从前,1个从后,通过和与目标值比较.

但最终求得是下标,所以额外空间存下标与排序同时显得很麻烦.

想法2:

这组数相对散列,把value和key倒置,用基数排序无疑更好.

因为对值的范围不明,map就是一个很好的选择.

C++中的unordered_map是无序map,同时也是最高效的map

利用它,很快得到一个不错的结果

Java中没有unordered_map,无序map用HashMap.

代码:

https://github.com/LiLane/leetcode/blob/master/c%2B%2B/001-TwoSum-201504151556.cpp

https://github.com/LiLane/leetcode/blob/master/java/001-TwoSum-201504272020.java


[LeetCode]-001-Two Sum

标签:

原文地址:http://blog.csdn.net/lane_l/article/details/45314699

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!