• 三数之和


    class Solution {
    public:
        vector<vector<int>> threeSum(vector<int>& nums) {
            vector<vector<int>> res;
            if(nums.size()<3) return res;

            sort(nums.begin(),nums.end());
            for(int i=0;i<nums.size()-2;i++){
                if(i>0 && nums[i]==nums[i-1]) continue;

                int left=i+1,right=nums.size()-1;
                while(left<right){
                    if(nums[left]+nums[right]+nums[i]==0){
                        res.push_back(vector<int>());
                        res.back().push_back(nums[i]); 
                        res.back().push_back(nums[left]); 
                        res.back().push_back(nums[right]);
                        left+=1;         
                        right-=1;
                        
                        while(left<right && nums[left]==nums[left-1]) left+=1;

                        while(left<right && nums[right]==nums[right+1]) right-=1;
                    }
                    else if(nums[left]+nums[right]+nums[i]<0){
                        left+=1;
                    }
                    else{
                        right-=1;
                    }
                }
            }
            return res;

        }
    };
  • 相关阅读:
    mysql初识(五) 统计与计算与时间
    mysql初识(四)添加/修改字段信息
    mysql初识(二) 基础的查询语句
    mysql初识(三)修改表结构
    mysql初识(一)基础属性篇
    在Ubuntu上安装Docker Engine
    使用PowerDesigner对NAME和COMMENT互相转换
    mysql 5.1.34
    debian7下安装eclipse
    让 Visio 2003/2007 同时开多个独立窗口
  • 原文地址:https://www.cnblogs.com/zijidan/p/12435292.html
Copyright © 2020-2023  润新知