• 15. 3Sum C++


    参考资料:

    https://leetcode.com/problems/3sum/discuss/7402/Share-my-AC-C%2B%2B-solution-around-50ms-O(N*N)-with-explanation-and-comments

    https://www.cnblogs.com/grandyang/p/4481576.html

    class Solution {
    public:
        vector<vector<int>> threeSum(vector<int>& nums) {
            vector<vector<int> > res;
    
            std::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];
    
                    // Finding answer which start from numsber nums[i]
                    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];
                        res.push_back(triplet);
    
                        // Processing duplicates of numsber 2
                        // Rolling the front pointer to the next different numsber forwards
                        while (front < back && nums[front] == triplet[1]) front++;
    
                        // Processing duplicates of numsber 3
                        // Rolling the back pointer to the next different numsber backwards
                        while (front < back && nums[back] == triplet[2]) back--;
                    }
    
                }
    
                // Processing duplicates of numsber 1
                while (i + 1 < nums.size() && nums[i + 1] == nums[i]) 
                    i++;
    
            }
    
            return res;
        }
    };
  • 相关阅读:
    cl编译器命令行调试问题
    西电计算机专业培养
    GCN代码实现
    GCN介绍
    cpu密集型任务及IO密集型任务,GIS,多进程及多线程
    骨架提取
    视频文件的一些属性
    空洞填充
    凸包,二值图家矩形框
    RGB图片取大于阈值部分
  • 原文地址:https://www.cnblogs.com/tornado549/p/9966923.html
Copyright © 2020-2023  润新知