167. Two Sum II - Input array is sorted
2017-09-13 16:04
507 查看
原文题目:
167. Two Sum II - Input array is sorted
读题:
给定一个升序序列,找到两个数加起来等于目标值,并输出索引,注意这里的索引是从1开始的
解题思路:
由于是升序,因此,可以用p指向第一个元素,用q指向最后一个元素,然后判断p和q所指的数加起来是否为目标值,找到则返回,若小于目标值,则p++,若大于目标值,则q++
class Solution
{
public:
vector<int> twoSum(vector<int>& numbers, int target)
{
vector <int> result;
int i = 0;
//输入保证一定有解,因此不需要考虑numbers的长度小于2的情况,否则这里j就成负数了
int j = numbers.size() - 1;
while(i!=j)
{
if(numbers[i] + numbers[j] == target)
{
result.push_back(i+1);
result.push_back(j+1);
break;
}
else if (numbers[i] + numbers[j] > target)
{
j--;
}
else
{
i++;
}
}
return result;
}
};
int main()
{
vector <int> result;
vector <int> numbers;
Solution s;
numbers.push_back(2);
numbers.push_back(7);
numbers.push_back(11);
numbers.push_back(15);
int target = 9;
int i = 0;
result = s.twoSum(numbers,target);
for(i = 0; i < result.size();i++)
{
cout << result[i]<<endl;
}
}
167. Two Sum II - Input array is sorted
读题:
给定一个升序序列,找到两个数加起来等于目标值,并输出索引,注意这里的索引是从1开始的
解题思路:
由于是升序,因此,可以用p指向第一个元素,用q指向最后一个元素,然后判断p和q所指的数加起来是否为目标值,找到则返回,若小于目标值,则p++,若大于目标值,则q++
class Solution
{
public:
vector<int> twoSum(vector<int>& numbers, int target)
{
vector <int> result;
int i = 0;
//输入保证一定有解,因此不需要考虑numbers的长度小于2的情况,否则这里j就成负数了
int j = numbers.size() - 1;
while(i!=j)
{
if(numbers[i] + numbers[j] == target)
{
result.push_back(i+1);
result.push_back(j+1);
break;
}
else if (numbers[i] + numbers[j] > target)
{
j--;
}
else
{
i++;
}
}
return result;
}
};
int main()
{
vector <int> result;
vector <int> numbers;
Solution s;
numbers.push_back(2);
numbers.push_back(7);
numbers.push_back(11);
numbers.push_back(15);
int target = 9;
int i = 0;
result = s.twoSum(numbers,target);
for(i = 0; i < result.size();i++)
{
cout << result[i]<<endl;
}
}
相关文章推荐
- 167. Two Sum II - Input array is sorted
- 【LeetCode】167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- 【leetcode】167. Two Sum II - Input array is sorted
- LeeyCode - 167. Two Sum II - Input array is sorted
- Leetcode 167. Two Sum II - Input array is sorted
- leetcode 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- [leetcode 刷题记录] 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- 【LeetCode】167. Two Sum II - Input array is sorted
- LeetCode - 167. Two Sum II - Input array is sorted - O(n) - ( C++ ) - 解题报告
- 167. Two Sum II - Input array is sorted
- 167. Two Sum II - Input array is sorted
- [LeetCode]167. Two Sum II - Input array is sorted