c_cpp 15.cpp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 15.cpp相关的知识,希望对你有一定的参考价值。

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>> result;
        sort(nums.begin(), nums.end());
        for(int i = 0; i < nums.size(); i++) {
            int target = -nums[i];
            int front = i + 1;
            int back = nums.size() - 1;
            while(front < back) {
                int sum = nums[front] + nums[back];
                if (sum < target) {
                    front++;
                } else if (sum > target) {
                    back--;
                } else {
                    vector<int> triplet(3, 0);
                    triplet[0] = nums[i];
                    triplet[1] = nums[front];
                    triplet[2] = nums[back];
                    result.push_back(triplet);
                    
                    while(front < back && nums[front] == triplet[1]) front++;
                    while(front < back && nums[back] == triplet[2]) back--;
                }
            }
            while (i + 1 < nums.size() && nums[i + 1] == nums[i]) {
                i++;
            }
        }
        return result;
    }
};

以上是关于c_cpp 15.cpp的主要内容,如果未能解决你的问题,请参考以下文章

C++入门经典-例6.15-通过字符串函数连接两个字符数组

c_cpp 130.周围地区

c_cpp 200.岛屿数量

c_cpp 127.单词阶梯

c_cpp MOFSET

c_cpp MOFSET