您的位置:首页 > 其它

LeetCode 1.Two Sum ------------LeetCode 第一题

2016-07-15 17:06 309 查看
<span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);">LeetCode 1.Two Sum</span>
<span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);">Given an array of integers, return </span><span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; background-color: rgb(255, 255, 255);">indices</span><span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);"> of the two numbers such that they add up to a specific target.</span>


You may assume that each input would have exactly one solution.
Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].


题意:求数组中两个值的和等于目标值

解法1. 用map

<span style="font-size:14px;">class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {

map<int, int > mp;

for(int i = 0; i < nums.size(); i++){
if(mp.count(nums[i]) == 0){
mp[target-nums[i]] = i;
}
else{
return {mp[nums[i]], i};
}

}

return {0,0};

}
};</span>


Runtime: 24
ms

解法2. 用数组

<span style="font-size:14px;">class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {

int max= nums[0];
int min = max;
for(int i = 0; i < nums.size(); i++){
if(max < nums[i]) max = nums[i];
if(min > nums[i]) min = nums[i];
}

int f[max-min+1];

fill(f,f+max-min+1,-1);

int offset = -min;

for(int i = 0; i < nums.size(); i++){
if(f[nums[i] + offset] == -1){
if(target-nums[i] <= max && target-nums[i] >= min){
f[target-nums[i]+ offset] = i;
}
}
else{
return {f[nums[i] + offset], i};
}
}

return {0,0};

}
};</span>

Runtime:  8ms



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  博客 leetcode map class On