LeetCode 1679. K 和数对的最大数目(哈希)
文章目录
- 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 和数对的最大数目(哈希)相关推荐
- 第 218 场周赛阿里巴巴专场(只做出了前三道)设计 Goal 解析器+K 和数对的最大数目+连接连续二进制数字
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/goal-parser-interpretation 声明:如果我侵犯了任何人的权利,请联系我,我 ...
- C++描述 LeetCode 5677. 统计同构子字符串的数目
C++描述 LeetCode 5677. 统计同构子字符串的数目 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写 ...
- Leetcode.1641 统计字典序元音字符串的数目
题目链接 Leetcode.1641 统计字典序元音字符串的数目 Rating : 1519 题目描述 给你一个整数 n,请返回长度为 n.仅由元音 (a, e, i, o, u)组成且按 字典序排列 ...
- LeetCode 787. K 站中转内最便宜的航班(图/Bellman Ford算法)
文章目录 贝尔曼-福特算法(Bellman-Ford) 简介 算法思想 算法执行过程 应用 题目描述 分析 代码 LeetCode 787. K 站中转内最便宜的航班 题目描述 Bellman For ...
- LeetCode——787. K 站中转内最便宜的航班(Cheapest Flights Within K Stops)[中等]——分析及代码(Java)
LeetCode--787. K 站中转内最便宜的航班[Cheapest Flights Within K Stops][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 ( ...
- LeetCode 787.K站中转内最便宜的航班
LeetCode 787.K站中转内最便宜的航班 有 n 个城市通过 m 个航班连接.每个航班都从城市 u 开始,以价格 w 抵达 v. 现在给定所有的城市和航班,以及出发城市 src 和目的地 ds ...
- LeetCode 992. K 个不同整数的子数组(双指针)
文章目录 1. 题目 2. 解题 1. 题目 给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续.不一定独立的子数组为好子数组. (例如,[1,2,3,1, ...
- LeetCode 1751. 最多可以参加的会议数目 II(DP + 二分查找)
文章目录 1. 题目 2. 解题 1. 题目 给你一个 events 数组,其中 events[i] = [startDayi, endDayi, valuei] ,表示第 i 个会议在 startD ...
- LeetCode 974. 和可被 K 整除的子数组(哈希map)
1. 题目 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续.非空)子数组的数目. 示例: 输入:A = [4,5,0,-2,-3,1], K = 5 输出:7 解释: 有 7 个子数组满 ...
最新文章
- Lightoj1014【基础题】
- 关于优酷开放SDK中setOnRealVideoStartListener
- u-boot-2012.07 for FL2440
- ANdroid O MeidiaPlayer 深入理解(一)
- java oracle 分区查询_深入学习Oracle分区表及分区索引
- 使用duilib开发半透明异形窗体程序(附源码和demo)
- OA办公自动化系统~~~SSM整合开发
- 跨域解决方案CROS最简单演示——JSP演示示例
- 个人开发—进度记录(十五)
- 【每日算法Day 69】面试经典题:分发糖果问题
- java8 function 多线程安全_Java8新特性_传统时间格式化的线程安全问题
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_09-webpack研究-webpack介绍
- 1200,1500PLC通过将FB284封装成一个标准FB块控制V90PN伺服EPOS定位
- 给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符(需要区分大小写)。
- Windows 技术篇-资源管理器文件默认排序设置,通用文件夹排序设置
- 一个遮罩层怎么遮罩两个图层_遮罩效果全解(13种方法)
- Redis命令语法大全
- Excel VBA: 工作表(Sheet)浏览导航插件
- H5 获取浏览器内核及版本
- 前端一键安装脚本工具
热门文章
- 作业帮电脑版在线使用_作业帮:创新科技驱动在线教育新模式
- Qt Console Application 与 Qt GUI Application互转
- Linux进程全解3——进程概念、进程ID、多进程调度原理
- 消息中间件核心实体(1)
- 点击开启此虚拟机时,出现“该虚拟机似乎正在使用中”问题
- 像阿超那样,花20分钟写一个能自动生成小心四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。 和同学们比较一下各自程序的功能,实现方法的异同,等等...
- 2-Second Scrum Meeting-20151202
- Windows下安装配置SubVersion的简明步骤
- 如何使用单线程处理高并发
- 马上工作了,想问下要注意哪些问题?