LeetCode 75 第十三题(1679)K和数对的最大数目

这篇具有很好参考价值的文章主要介绍了LeetCode 75 第十三题(1679)K和数对的最大数目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:

LeetCode 75 第十三题(1679)K和数对的最大数目,LeetCode75题解,leetcode,算法,数据结构,c++

示例:

LeetCode 75 第十三题(1679)K和数对的最大数目,LeetCode75题解,leetcode,算法,数据结构,c++

分析:

给一个数组,两个和为K的数为一组,问能凑成几组。

既然一组是两个数,那么我们可以使用双指针分别指向数组首尾,然后再判断能否凑成和为K的组.

在使用双指针寻找之前,我们应当先将数组排序(升序降序都无所谓),我们这里采用C++sort的默认升序.

然后左右指针分别指向数组首尾,将指针所指元素加起来,若是大于K,则需要减小指针所指元素总和,由于是排序后的数组,因此需要左移右指针,然后再进行判断.

碰到和为K的组后,将res++,并且同时移动两个指针,因为题目是说找到数对后将其移出数组,但是我们没有移出,所以只要指针不再指向它们,也就约等于是移出了.

左右指针向中间靠拢,知道双指针重叠则寻找完毕.

LeetCode 75 第十三题(1679)K和数对的最大数目,LeetCode75题解,leetcode,算法,数据结构,c++

 LeetCode 75 第十三题(1679)K和数对的最大数目,LeetCode75题解,leetcode,算法,数据结构,c++

代码+运行结果:

class Solution {
public:
    int maxOperations(vector<int>& nums, int k) {
        int res=0;
        int l=0;
        int r=nums.size()-1;
        sort(nums.begin(),nums.end());
        int SUM=0;
        while(l<r){
            SUM=nums[l]+nums[r];
            if(SUM==k){
                ++l;--r;++res;
            }else if(SUM>k){
                --r;
            }else{
                ++l;
            }
        }
        return res;
    }
};

LeetCode 75 第十三题(1679)K和数对的最大数目,LeetCode75题解,leetcode,算法,数据结构,c++文章来源地址https://www.toymoban.com/news/detail-617101.html

到了这里,关于LeetCode 75 第十三题(1679)K和数对的最大数目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Go版]算法通关村第十三关黄金——数字数学问题之数论问题(最大公约数、素数、埃氏筛、丑数)

    题目链接:LeetCode-1979. 找出数组的最大公约数 辗转相除法其核心部分为:若r 是a ÷ b的余数,则 gcd(a, b)=gcd(b, r) 题目链接:LeetCode-204. 计数质数 如果 x 是质数,那么大于 x 的 x 的倍数 2x,3x,… 一定不是质数。 时间复杂度分析: 外层循环的迭代次数是 n-2,即 O ( n ) O(n) O ( n ) 次

    2024年02月11日
    浏览(39)
  • C++字典树算法:找出强数对的最大异或值 II

    数学 字典树 给你一个下标从 0 开始的整数数组 nums 。如果一对整数 x 和 y 满足以下条件,则称其为 强数对 : |x - y| = min(x, y) 你需要从 nums 中选出两个整数,且满足:这两个整数可以形成一个强数对,并且它们的按位异或(XOR)值是在该数组所有强数对中的 最大值 。 返回数

    2024年02月05日
    浏览(48)
  • 1239. 串联字符串的最大长度;2826. 将三个组排序;2563. 统计公平数对的数目

    1239. 串联字符串的最大长度 核心思想:递归,选或者不选,定义dfs(i,pre)表示从i-n的满足要求的arr中选择字符串串联所能获得的最大长度为dfs(i,pre),pre表示已经选过的字符串所组成的集合。然后就有两种情况选,或者不选,选的话需要保证mask[i]和pre没有公共字母,dfs(i+1,p

    2024年02月11日
    浏览(37)
  • 2023-08-23 LeetCode每日一题(统计点对的数目)

    点击跳转到题目位置 给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成,其中 edges[i] = [u i , v i ] 表示 u i 和 v i 之间有一条无向边。同时给你一个代表查询的整数数组 queries 。 第 j 个查询的答案是满足如下条件的点对 (a, b) 的数目: a b cnt 是与 a 或者 b

    2024年02月11日
    浏览(54)
  • Leetcode每日一题:1782. 统计点对的数目(2023.8.24 C++)

    目录 1782. 统计点对的数目 题目描述: 实现代码与解析: hash + 双指针 原理思路:         给你一个无向图,无向图由整数  n   ,表示图中节点的数目,和  edges  组成,其中  edges[i] = [ui, vi]  表示  ui  和  vi  之间有一条无向边。同时给你一个代表查询的整数数组 

    2024年02月10日
    浏览(44)
  • 数据结构:带环单链表基础OJ练习笔记(leetcode142. 环形链表 II)(leetcode三题大串烧)

    目录 一.前言  二.leetcode160. 相交链表  1.问题描述 2.问题分析与求解 三.leetcode141. 环形链表 1.问题描述 2.代码思路  3.证明分析  下一题会用到的重要小结论: 四.leetcode142. 环形链表 II 1.问题描述 2.问题分析与求解 Judgecycle接口: 方法一: 方法二:  单链表和带环单链表

    2023年04月08日
    浏览(40)
  • LeetCode75——Day21

    1207. Unique Number of Occurrences Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise. Example 1: Input: arr = [1,2,2,1,1,3] Output: true Explanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences. Example 2: Input: arr = [1,2

    2024年02月07日
    浏览(75)
  • LeetCode75——Day24

    2390. Removing Stars From a String You are given a string s, which contains stars *. In one operation, you can: Choose a star in s. Remove the closest non-star character to its left, as well as remove the star itself. Return the string after all stars have been removed. Note: The input will be generated such that the operation is always possible. It can be s

    2024年02月06日
    浏览(32)
  • LeetCode 75| 位运算

    目录 338 比特位计数 136 只出现一次的数字  1318 或运算的最小翻转次数 时间复杂度O(n) 空间复杂度O(n) 时间复杂度O(n) 空间复杂度O(1) 时间复杂度O(n)//n为a,b,c 的最大二进制位数 空间复杂度O(1)

    2024年02月04日
    浏览(25)
  • Leetcode.75 颜色分类

    给定一个包含红色、白色和蓝色、共  n   个元素的数组  nums  , 原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数  0 、  1  和  2  分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这个问题。

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包