导航

leetcode刷题笔记(1)

Posted on 2019-04-12 12:01  stumn  阅读(135)  评论(0)    收藏  举报

//这是leetcode的第一道题,这里假设nums是有序数列

//等我学会了排序再加上无序序列的查找

#include<iostream>
#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一下