您的位置:首页 > 编程语言 > C语言/C++

每日进步之leetcode第1题C++实现代码

2016-07-28 23:30 627 查看
主要问题在于原始序号问题

class Solution {

public:

    vector<int> twoSum(vector<int>& nums, int target) {

        int len = nums.size();

        vector<int> tmpvec(len,0);

        for (int i = 0; i< len; ++i){

            tmpvec[i] = i;

        }

        for(int i = 0; i < len-1; ++i)

        {

            for(int j = 0; j < len-i-1; ++j)

            {

                if(nums[j] > nums[j+1]){

                    swap(nums[j], nums[j+1]);

                    swap(tmpvec[j], tmpvec[j+1]);

                }

            }

        }

        int begin = 0;

        int end = nums.size()-1;

        vector<int> ver;

        while(begin < end)

        {

            int sum = nums[begin] + nums[end];

            if(sum == target){

                ver.push_back(tmpvec[begin]);

                ver.push_back(tmpvec[end]);

                break;

            }else if ( sum > target){

                --end;

            }else{

                ++begin;

            }

        }

        return ver;

    }

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