当前位置: 首页 > news >正文

888. 公平的糖果交换

目录

题目链接:

题目:

解题思路:

代码:

总结:


题目链接:

888. 公平的糖果交换 - 力扣(LeetCode)

题目:

解题思路:

前一个数组和sumA,后一个数组sumB,然后使用HashSet将第一个数组的所有值存入哈希表中,

sumA-自己一个值+B的一个值==sumB-自己的一个值+A的一个值就是找到了,这个公式可以化简为x=y+(sumA+sumB),这样遍历第二个数组,根据这个公式找到x去哈希表里面寻找即可,找到就是有,没找到就是没有

代码:

class Solution {public int[] fairCandySwap(int[] aliceSizes, int[] bobSizes) {Set<Integer> st=new HashSet<>();int suma=0;for(int val:aliceSizes){st.add(val);suma+=val;}int sumb=0;for(int val:bobSizes){sumb+=val;}int x=(suma-sumb)/2;for(int val:bobSizes){int y=val+x;if(st.contains(y)){return new int[]{y,val};}}return new int[]{};}
}


总结:

【摘要】该题目要求通过交换糖果盒使两人糖果总量相等。解题关键在于计算双方糖果总和sumA和sumB,将A的糖果存入哈希表。通过数学推导得出交换值应满足x=y+(sumA-sumB)/2。遍历B的糖果值,用公式在哈希表中查找匹配的A值,找到即返回交换对。该方法利用哈希表实现O(1)查找,总时间复杂度为O(m+n)。(字数:149)


 

http://www.lryc.cn/news/614209.html

相关文章:

  • 机器学习之支持向量机(原理)
  • Go 踩过的坑之协程参数不能过大
  • 四、redis入门之集群部署
  • 惯量时间常数 H 与转动惯量 J 的关系解析
  • UE5 图片9宫格切割
  • B4263 [GESP202503 四级] 荒地开垦 题解
  • Go语言实战案例:简易JSON数据返回
  • PostgreSQL技术大讲堂 - 第100讲:玩转PG数据库对象权限卷之迷宫
  • day070-Jenkins自动化与部署java、前端代码
  • windows 上编译PostgreSQL
  • Flutter多引擎架构下原生通信的模块化封装与性能优化
  • 研发流程管理经验分享
  • Chrome与Firefox浏览器安全运维配置命令大全:从攻防到优化的专业实践
  • 【类与对象(中)】C++类默认成员函数全解析
  • 使用 Grunt 替换 XML 文件中的属性值
  • 50系显卡ubuntu20.04安装显卡驱动,解决gazebo不调用显卡的问题
  • Java文件读写(IO、NIO)
  • HttpURLConnection (JDK原生)和Hutool HTTP工具的区别
  • 浅析线程池工具类Executors
  • ASTM D4169-23版本有哪些实施指南
  • 2025年最新Java后端场景题+八股文合集(100w字面试题总结)
  • [激光原理与应用-176]:测量仪器 - 频谱型 - AI分类与检测相对于传统算法的优缺点分析
  • 零知开源——基于STM32F103RBT6的TDS水质监测仪数据校准和ST7789显示实战教程
  • 【优选算法】BFS解决拓扑排序
  • Rust语言序列化和反序列化vec<u8>,serde库Serialize, Deserialize,bincode库(2025年最新解决方案详细使用)
  • 全面了解svm
  • 海量数据处理问题详解
  • MySQL 正则表达式详细说明
  • [ MySQL 数据库 ] 环境安装配置和使用
  • 零基础深度学习规划路线:从数学公式到AI大模型的系统进阶指南