#include<iostream>//这是leetcode的第一道题
#include<vector>
using namespace std;
vector<int> nums{ 1, 3, 6, 9 };
int target = 15;
class Solution {
public:
const vector<int> twoSum(vector<int>& nums, int target)
{
vector<int> index;
if (target <= nums[en])
{
while ((beg != en) && (beg - 1 != en))
{
if ((nums[beg] + nums[en]) > target)
en--;
else if ((nums[beg] + nums[en]) == target)
{
index.push_back(beg);
index.push_back(en);
beg++;
}
else
beg++;
}
}
else
{
while ((beg != en) && (beg - 1 != en))
{
if ((nums[beg] + nums[en]) < target)
beg++;
else if ((nums[beg] + nums[en]) == target)
{
index.push_back(beg);
index.push_back(en);
en--;
}
else
en--;
}
}
return index;
}
decltype(nums.size()) beg = 0, en = nums.size() - 1;
};
int main()
{
Solution s;
cout << s.twoSum(nums, target).size() << endl;//2
cout << s.twoSum(nums, target).size() << endl;//0
system("pause");
return 0;
}
红色部分为什么值不同鸭???
先mark一下
原文:https://www.cnblogs.com/stumn/p/10695217.html