LeetCode-1679. K 和数对的最大数目

python-leetcode-K 和数对的最大数目 如果数组未排序,排序是必要的。但如果元素范围小(如限定 0 ≤。方法来解决这个问题。使用哈希表可以优化时间复杂度至。优化至 O(n) 时间复杂度。≤ 100),可以用。 阅读详情

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

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

返回你可以对数组执行的最大操作数。
地址:https://leetcode.cn/problems/max-number-of-k-sum-pairs/description/?envType=study-plan-v2&envId=leetcode-75
实现思路: 哈希表

  1. 哈希表统计数组元素
  2. 遍历哈希表,若key>k直接跳过即可
  3. 如果k刚好等于key的2倍则res+=hs[key]/2(若hs[key]==1则res+=1,也是符合要求的)
  4. 如果hs[k-key]>0,说明有两个数相加等于k,则res增加hs[key]和hs[k-key]中的较小值
func maxOperations(nums []int, k int) int {
	res := 0
	hs := make(map[int]int)
	length := len(nums)
	for i := 0; i < length; i++ {
		hs[nums[i]]++
	}
	for key := range hs {
		if key > k {
			continue
		}
		if key*2 == k {
			res += hs[key] / 2
			hs[key] = 0
			continue
		}
		if hs[k-key] > 0{
			res += min(hs[key], hs[k-key])
			hs[key] = 0
			hs[k-key] = 0
		}
	}
	return res
}

相关推荐

UniApp X 网络请求避坑指南:从 JS 到 UTS 的 JSON 数据处理全解析

摘要:UniAppX开发中处理JSON数据时,UTS强类型特性要求开发者改变JS习惯。本文对比两种主流方案:1)UTSJSONObject通过keypath访问数据,兼容JS但缺乏类型提示;2)type+泛型方案,通过定义数据类型实现强类型校验和智能提示,推荐用于固定数据结构。文章详细演示了两种方式的具体实现、转换方法及实战案例,并提供了类型定义技巧和注意事项,帮助开发者编写更稳定高效的跨平台应用。

归梦工作室 2788

leetcode - 1679 - K 和数对的最大数目

文章目录题目描述题目剖析&信息挖掘解题思路方法一 哈希法思路注意知识点复杂度代码实现方法二 双指针法思路注意知识点复杂度参考代码实现相关题目 题目描述 [1674] 使数组互补的最少操作次数 给你一个整数数组 nums 和一个整数 k 。 每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。 返回你可以对数组执行的最大操作数。 示例 1: 输入:nums = [1,2,3,4], k = 5 输出:2 解释:开始时 nums = [1,2,3,4]: 移出 1 和 4 ,之后

闪电彬彬的博客 638

Arduino程序设计(八)LCD显示实验

本文主要介绍温度/温湿度传感器的LCD显示实验,分别是:1、LM35采集环境温度LCD显示;2、DS18B20采集环境温度LCD显示;3、DHT11采集环境温湿度LCD显示。(1)LM35介绍LM35特性特性说明基本功能LM35作为常用的温度传感器,可以检测周围的温度工作原理利用感温材料,通过内部电路将温度值转化为对应的电压信号工作电压4~30V,常用5V供电温度测量测量范围0~100℃ ,误差 ±0.5℃输出信号线性模拟信号输出,LM35输出电压和摄氏温度程线性关系。

Alice的博客 6711

LeetCode 1679. K 和数对的最大数目

给你一个整数数组nums和一个整数k。每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。2开始时 nums = [1,2,3,4]:- 移出 1 和 4 ,之后 nums = [2,3]- 移出 2 和 3 ,之后 nums = []不再有和为 5 的数对,因此最多执行 2 次操作。1开始时 nums = [3,1,3,4,3]:- 移出前两个 3 ,之后nums = [1,4,3]不再有和为 6 的数对,因此最多执行 1 次操作。

m0_56090828的博客 501

国密SSL实战:手把手教你用Wireshark抓包分析GMTLS协议(附证书链验证技巧)

本文提供了一份国密SSL(GMTLS)协议的实战抓包分析指南。通过详细讲解Wireshark的配置、GMTLS握手流程的捕获与筛选,以及双证书机制和证书链的深度解析,帮助工程师和开发人员掌握使用Wireshark排查国密SSL连接问题、进行密评和协议调试的核心技巧。

rgv234567的博客 501

Unity URP项目里Post Processing死活没效果?别慌,这5个坑我帮你踩过了

本文详细解析了Unity URP项目中Post Processing效果失效的五大常见问题,包括渲染管线配置冲突、Volume作用域误判、摄像机参数漏配、Layer层级冲突和Profile引用异常。通过实际项目案例和代码示例,提供专业级解决方案,帮助开发者快速排查并修复后处理效果不生效的问题。

weixin_33721427的博客 333

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

Michael是个半路程序员 774

巡检机器人的基于ROS系统的任务管理架构设计总结

本文探讨了基于ROS(机器人操作系统)的工业巡检机器人任务管理架构设计,提出分层闭环方案。架构围绕稳、准、活、扩四大目标,分为感知层(多源数据融合)、调度层(智能决策)、执行层(动作控制)和数据层(存储交互)。关键技术包括ROS2实时性优化、功能包复用和多机器人协同调度。实践案例显示,该架构在电力巡检中使任务完成率达99%,在化工园区实现95%覆盖率。当前挑战包括SLAM地图漂移和多机通信延迟,未来可通过语义SLAM和区域通信优化。

start_up_go的博客 462

1679. K 和数对的最大数目【力扣】

给你一个整数数组nums和一个整数k。每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。

challenger_fight的博客 271

在 SAP ABAP 生态中偏爱面向对象,而不是过程式堆叠

本文探讨了ABAP开发中过程式与面向对象编程的共存现状及优化方向。文章指出,虽然过程式编程在ABAP中仍广泛存在,但随着业务复杂度提升,面向对象编程在可维护性、可测试性和重构便利性方面展现出明显优势。作者建议将过程式代码作为"适配层",仅负责输入输出转换,而将核心业务逻辑封装在类中。文章通过实际案例展示了这种架构如何提高交付效率,并提供了将Function Module转化为"薄包装"的具体实现方案,强调面向对象设计在SAP Gateway和RAP等现代架构中的重要性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 132

基于VLFM的中文指令视觉语言导航系统设计与实现

文章摘要 本文介绍了一个基于VLFM(视觉语言边界地图)的中文指令视觉语言导航系统设计与实现。该系统采用模块化架构,包含三维场景渲染、URDF机器人仿真、VLFM导航引擎、中文指令解析和PyQt图形界面五大核心模块。系统支持自定义GLB场景模型和URDF机器人模型,通过transformers和langchain实现中文自然语言指令解析,利用VLFM算法进行语义导航决策。技术实现上详细介绍了GLB模型加载器开发、URDF机器人控制、VLFM导航算法集成以及PyQt界面设计。该系统在Ubuntu环境下运行,依

AI的内部世界的博客 205

力扣1679.K 和数对的最大数目

枚举右,维护左

2301_76908317的博客 301

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Leetcode 1679. K 和数对的最大数目 双指针法

给你一个整数数组 nums 和一个整数 k。每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。示例 1:输入:nums = [1,2,3,4], k = 5输出:2示例 2:输入:nums = [3,1,3,4,3], k = 6输出:1。

qq_42747210的博客 812

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

记录:力扣题解:1679. K 和数对的最大数目

将整个数组进行排序,然后用双指针对数组前后进行计算,如果满足条件,前后指针各走一位,并计数加一。如果比目标值小,则前指针+1,再计算;如果大于目标值,则右指针-1,再计算。的两个整数,并将它们移出数组。- 移出 1 和 4 ,之后 nums = [2,3]- 移出前两个 3 ,之后nums = [1,4,3]不再有和为 5 的数对,因此最多执行 2 次操作。不再有和为 6 的数对,因此最多执行 1 次操作。- 移出 2 和 3 ,之后 nums = []每一步操作中,你需要从数组中选出和为。

weixin_45314061的博客 210

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

面试必考精华版Leetcode1679. K 和数对的最大数目

a.resize(n,m) 用n个m初始化a,如果m不填默认为0。-nums.erase( nums.[迭代器] )

meeiuliuus的博客 119

leetcode刷题250天(73)——1679. K 和数对的最大数目(双指针)

给你一个整数数组 nums 和一个整数 k 。 每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。 返回你可以对数组执行的最大操作数。 解题思路: 排序后找大的加小的符合要求,计数,移动指针 class Solution(object): def maxOperations(self, nums, k): res = 0 nums.sort() left, right = 0, len(nums)-1

Dustw1nd的技术小屋 157

1679. K 和数对的最大数目

leetcode力扣刷题打卡 题目:1679. K 和数对的最大数目 描述:给你一个整数数组 nums 和一个整数 k 。 每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。 返回你可以对数组执行的最大操作数。 思路: 1、先排序再双指针; 2、典型双指针算法; 原代码## class Solution { public: int maxOperations(vector<int>& nums, int k) { int n = nums

qq_32355021的博客 297

Leetcode 88 K 和数对的最大数目

维度双指针法(排序版)哈希表法(边遍历边配对)核心思路利用排序后的有序性,通过左右指针的移动找和为 k 的数对利用哈希表记录 “等待配对” 的数值及数量,边遍历边配对代码核心步骤1. 排序数组2. 左右指针初始化3. 按和的大小移动指针1. 初始化哈希表2. 遍历元素计算 need3. 有 need 则配对,无则存入哈希表键 / 值含义无哈希表,仅依赖数组有序性key:数组数值value:该数值等待配对的数量时间复杂度O (n log n)(排序占主导)O (n)(仅遍历一次数组)

im_AMBER的博客 911

【数据结构和算法】 K 和数对的最大数目

给你一个整数数组nums和一个整数k。 每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。 返回你可以对数组执行的最大操作数。

船到桥头自然直 1395

Leetcode 74 K 和数对的最大数目

给你一个整数数组nums和一个整数k。每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。2开始时 nums = [1,2,3,4]:- 移出 1 和 4 ,之后 nums = [2,3]- 移出 2 和 3 ,之后 nums = []不再有和为 5 的数对,因此最多执行 2 次操作。1开始时 nums = [3,1,3,4,3]:- 移出前两个 3 ,之后nums = [1,4,3]不再有和为 6 的数对,因此最多执行 1 次操作。

im_AMBER的博客 963

1679 K 和数对的最大数目(使用字典对余数分组、排序 + 双指针)

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,

二哈 503

Leetcode之1679: K和数对的最大数目

题目: 给你一个整数数组 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,

qq_35455503的博客 405

LeetCode1679K和数对的最大数目

给你一个整数数组 nums 和一个整数 k。每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。

JELEE 233
上一篇: LeetCode-283. 移动零
下一篇: LeetCode-2390. 从字符串中移除星号
Wenhao.
博客等级 码龄4年 77粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值