文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个整数数组 nums 和一个整数 k 。

每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。

返回你可以对数组执行的最大操作数

示例 1:
输入:nums = [1,2,3,4], k = 5
输出:2
解释:开始时 nums = [1,2,3,4]:
- 移出 1 和 4 ,之后 nums = [2,3]
- 移出 2 和 3 ,之后 nums = []
不再有和为 5 的数对,因此最多执行 2 次操作。示例 2:
输入:nums = [3,1,3,4,3], k = 6
输出:1
解释:开始时 nums = [3,1,3,4,3]:
- 移出前两个 3 ,之后nums = [1,4,3]
不再有和为 6 的数对,因此最多执行 1 次操作。提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^9
1 <= k <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-number-of-k-sum-pairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int maxOperations(vector<int>& nums, int k) {unordered_map<int, int> m;for(auto n : nums)m[n]++;//哈希计数int sum = 0, num, count, target, add;for(auto& num_count : m){num = num_count.first;//数字count = num_count.second;//个数if(count == 0)continue;target = k-num;//另一个数字if(m.find(target) != m.end())//另一个数字存在{if(target != num)//不相等add = min(count, m[target]);else if(target == num)//相等add = count/2;sum += add;//操作数num_count.second -= add;//原计数 减去操作过的m[target] -= add;}}return sum;}
};

352 ms 66.5 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1679. K 和数对的最大数目(哈希)相关推荐

  1. 第 218 场周赛阿里巴巴专场(只做出了前三道)设计 Goal 解析器+K 和数对的最大数目+连接连续二进制数字

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/goal-parser-interpretation 声明:如果我侵犯了任何人的权利,请联系我,我 ...

  2. C++描述 LeetCode 5677. 统计同构子字符串的数目

    C++描述 LeetCode 5677. 统计同构子字符串的数目   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写 ...

  3. Leetcode.1641 统计字典序元音字符串的数目

    题目链接 Leetcode.1641 统计字典序元音字符串的数目 Rating : 1519 题目描述 给你一个整数 n,请返回长度为 n.仅由元音 (a, e, i, o, u)组成且按 字典序排列 ...

  4. LeetCode 787. K 站中转内最便宜的航班(图/Bellman Ford算法)

    文章目录 贝尔曼-福特算法(Bellman-Ford) 简介 算法思想 算法执行过程 应用 题目描述 分析 代码 LeetCode 787. K 站中转内最便宜的航班 题目描述 Bellman For ...

  5. LeetCode——787. K 站中转内最便宜的航班(Cheapest Flights Within K Stops)[中等]——分析及代码(Java)

    LeetCode--787. K 站中转内最便宜的航班[Cheapest Flights Within K Stops][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 ( ...

  6. LeetCode 787.K站中转内最便宜的航班

    LeetCode 787.K站中转内最便宜的航班 有 n 个城市通过 m 个航班连接.每个航班都从城市 u 开始,以价格 w 抵达 v. 现在给定所有的城市和航班,以及出发城市 src 和目的地 ds ...

  7. LeetCode 992. K 个不同整数的子数组(双指针)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续.不一定独立的子数组为好子数组. (例如,[1,2,3,1, ...

  8. LeetCode 1751. 最多可以参加的会议数目 II(DP + 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 events 数组,其中 events[i] = [startDayi, endDayi, valuei] ,表示第 i 个会议在 startD ...

  9. LeetCode 974. 和可被 K 整除的子数组(哈希map)

    1. 题目 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续.非空)子数组的数目. 示例: 输入:A = [4,5,0,-2,-3,1], K = 5 输出:7 解释: 有 7 个子数组满 ...

最新文章

  1. Lightoj1014【基础题】
  2. 关于优酷开放SDK中setOnRealVideoStartListener
  3. u-boot-2012.07 for FL2440
  4. ANdroid O MeidiaPlayer 深入理解(一)
  5. java oracle 分区查询_深入学习Oracle分区表及分区索引
  6. 使用duilib开发半透明异形窗体程序(附源码和demo)
  7. OA办公自动化系统~~~SSM整合开发
  8. 跨域解决方案CROS最简单演示——JSP演示示例
  9. 个人开发—进度记录(十五)
  10. 【每日算法Day 69】面试经典题:分发糖果问题
  11. java8 function 多线程安全_Java8新特性_传统时间格式化的线程安全问题
  12. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_09-webpack研究-webpack介绍
  13. 1200,1500PLC通过将FB284封装成一个标准FB块控制V90PN伺服EPOS定位
  14. 给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符(需要区分大小写)。
  15. Windows 技术篇-资源管理器文件默认排序设置,通用文件夹排序设置
  16. 一个遮罩层怎么遮罩两个图层_遮罩效果全解(13种方法)
  17. Redis命令语法大全
  18. Excel VBA: 工作表(Sheet)浏览导航插件
  19. H5 获取浏览器内核及版本
  20. 前端一键安装脚本工具

热门文章

  1. 作业帮电脑版在线使用_作业帮:创新科技驱动在线教育新模式
  2. Qt Console Application 与 Qt GUI Application互转
  3. Linux进程全解3——进程概念、进程ID、多进程调度原理
  4. 消息中间件核心实体(1)
  5. 点击开启此虚拟机时,出现“该虚拟机似乎正在使用中”问题
  6. 像阿超那样,花20分钟写一个能自动生成小心四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。 和同学们比较一下各自程序的功能,实现方法的异同,等等...
  7. 2-Second Scrum Meeting-20151202
  8. Windows下安装配置SubVersion的简明步骤
  9. 如何使用单线程处理高并发
  10. 马上工作了,想问下要注意哪些问题?