当前位置: 首页 > 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.dtcms.com/a/321788.html

相关文章:

  • YOLO-Count:用于文本到图像生成的可微分目标计数
  • 智慧公厕自动清洁空气环境,节省门店运营成本
  • 什么是SSL证书颁发机构?
  • 北斗变形监测技术应用与案例分析
  • SVM算法实战应用
  • 【开源工具】网络交换机批量配置生成工具开发全解:从原理到实战(附完整Python源码)
  • C++ 标准库容器常用成员函数
  • 04--模板初阶(了解)
  • 【Linux】从零开始:RPM 打包全流程实战万字指南(含目录结构、spec 编写、分步调试)
  • 【探展WAIC】从“眼见为虚”到“AI识真”:如何用大模型筑造多模态鉴伪盾牌
  • 惯量时间常数 H 与转动惯量 J 的关系解析
  • uniapp开发微信小程序遇到富文本内容大小变形问题v-html
  • 【谷歌 SEO】排查页面未索引问题:原因与解决方案
  • 页面tkinter
  • CALL与 RET指令及C#抽象函数和虚函数执行过程解析
  • 锂电池保护板测试仪:守护电池安全的核心工具|深圳鑫达能
  • 深度学习里一些常用的指标(备份)
  • 常见数据结构介绍(顺序表,单链表,双链表,单向循环链表,双向循环链表、内核链表、栈、队列、二叉树)
  • 浅析线程池工具类Executors
  • 客户端攻击防御:详解现代浏览器安全措施
  • Python字典高阶操作:高效提取子集的技术与工程实践
  • Socket编程预习
  • js 实现洋葱模型、洋葱反向模型
  • 关于 Rust 异步(无栈协程)的相关疑问
  • Prometheus 监控平台部署与应用
  • 新版速递|ColchisFM突破传统建模局限,用地质统计学模拟构建更真实的地震正演模型
  • 1635. 预算够吗
  • linux运维命令查看cpu、内存、磁盘使用情况
  • FFmpeg 编译安装和静态安装
  • 12、GPIO介绍