首页 > 其他分享 >LeetCode 18. 四数之和

LeetCode 18. 四数之和

时间:2023-03-16 21:56:35浏览次数:40  
标签:tmp 四数 nums 18 long vector ans LeetCode

class Solution {
public:
    vector<vector<int>> fourSum(vector<int>& nums, int target) {
        vector<vector<int>> ans;
        long long tmp=target;
        sort(nums.begin(),nums.end());
        for(int a=0;a<nums.size();a++)
        {
            if(a&&nums[a]==nums[a-1])
                continue;
            for(int b=a+1;b<nums.size();b++)
            {
                if(b!=a+1&&nums[b]==nums[b-1])
                    continue;
                for(int c=b+1,d=nums.size()-1;c<d;c++)//双指针
                {
                    if(c!=b+1&&nums[c]==nums[c-1])
                        continue;
                    while(d!=c+1&&(long long)nums[a]+nums[b]+nums[c]+nums[d-1]>=tmp)
                        d--;
                    if((long long)nums[a]+nums[b]+nums[c]+nums[d]==tmp)
                        ans.push_back({nums[a],nums[b],nums[c],nums[d]});
                }
            }
        }
        return ans;
    }
};

标签:tmp,四数,nums,18,long,vector,ans,LeetCode
From: https://www.cnblogs.com/tangxibomb/p/17224311.html

相关文章

  • LeetCode1024 -- 二分
    1.题目描述查找满足劳累天数严格大于不劳累天数的最大子区间2.思路对于区间问题,很容易先想到前缀和帮助我们优化。我们可以设,劳累=\(1\),不劳累=\(-1\),那么,就是求......
  • Leetcode202. 快乐数
    题目描述:编写一个算法来判断一个数n是不是快乐数。「快乐数」 定义为:•对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。•然后重复这个过程直到这个......
  • 「题解」洛谷 P5644 [PKUWC2018]猎人杀
    题意:初始有\(n\)个人,每个人的权值是\(w_i\),假设这一轮剩余还没嘎掉的人总权值是\(s\),那么这一轮它有\(\frac{w_i}{s}\)的概率嘎掉。求\(1\)活到最后的概率是多少。......
  • 918. 环形子数组的最大和
    题目描述数组是环形数组,且含有负数,求一个子数组,具有最大和f1-单调队列基本分析怎么处理环?破环成链,将n的环展开成2*n的链,在不超过n的窗口内遍历之后怎么做?在2*n的数组......
  • SSL/TLS协议信息泄露漏洞(CVE-2016-2183)
    解决办法 工具下载地址NartacSoftware-IISCrypto ......
  • CF1801F - Another n-dimensional chocolate bar
    \[枉过路,经行处,寒水凄凉漱黄土\]\[相逢途,舟难住,雾凇封树冰刺骨\]\[虽未闻望地如何,亦誓要从渃河渡\]首先,考虑可能的\(b\)序列,对于\(b_i\),设\(p=\prod_{j\neqi}b_j\)......
  • 20212323严文霞--数据库读书笔记一(P3-P18,P31-P33)
    1.1数据库系统概述1.1.1数据库的4个基本概念数据(data)定义:描述事物的符号记录称为数据。数据有多种表现形式,例如数字、文字、图形、图像、音视频等;数据需要进行解......
  • 【LeetCode】232.使用栈模拟队列
    使用栈模拟队列​ 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队......
  • LeetCode135 分发糖果
    题目描述n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到1个糖果。相邻两个孩子评分更......
  • LeetCode349. 两个数组的交集
    题目描述:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例1:输入:nums1=[1,2,......