zoukankan      html  css  js  c++  java
  • LeetCode OJ--4Sum *

    https://oj.leetcode.com/problems/4sum/

    在一个数列中,找出所有的4个数,它们的和是target.

    class Solution {
    public:
        vector<vector<int> > fourSum(vector<int> &num, int target)  {
            vector<vector<int> > ans;
            if(num.size()<4)
                return ans;
    
            sort(num.begin(),num.end());
            for(int i = 0;i<num.size()-3;i++)
            {
                if(i>0 && num[i]==num[i-1])
                    continue;
                 
                calcThree(num,target - num[i],i,ans);
            }
            return ans;
        }
        void calcThree(vector<int> &num,int threeSum,int firstPosition,vector<vector<int> > &ans)
        {
            int k = 0;
    
            for(int i = firstPosition+1;i<num.size()-2;i++)
            {
                if(i>firstPosition+1 && num[i] == num[i-1])
                    continue;
                int j = i+1;
     
                k = num.size()-1;
                
                while(j<k)
                {
                    if(num[i]+num[j]+num[k] == threeSum)
                    {
                        if(ans.size()==0 || ans.size()>0 && !(num[firstPosition] == ans[ans.size()-1][0] && num[i]==ans[ans.size()-1][1]&& num[j] ==ans[ans.size()-1][2] ))
                        {
                            vector<int> ansPiece;
                            ansPiece.push_back(num[firstPosition]);
                            ansPiece.push_back(num[i]);
                            ansPiece.push_back(num[j]);
                            ansPiece.push_back(num[k]);                    
                            ans.push_back(ansPiece);
                        }
                        j++;
                    }
                    else if(num[i]+num[j]+num[k] < threeSum)
                        j++;
                    else
                        k--;
                }
            }
        }
    };
  • 相关阅读:
    vue 自定义指令
    vue 插槽
    vue 菜单跳转 页面错乱
    vue项目中使用elementUI的el-tabs组件 浏览器卡死问题 解决办法
    vue 环境配置
    移动端页面 问题 注意事项
    定义全局 强制刷新指令
    手机端样式 处理
    手机访问电脑本地开发的页面
    百度AI
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3803630.html
Copyright © 2011-2022 走看看