leetcode 888. Fair Candy Swap 题解【Weekly Content 98 I】

洛谷 P5858 Golden Sword题解 目录题面前置知识题解分析AC Code 题面 传送门 制造一把金宝剑需要nnn种原料,编号为111到nnn,编号为iii的原料的坚固值为aia_iai​。 炼金是很讲究放入原料的顺序的,因此小E必须按照111到nnn的顺序依次将这些原料放入炼金锅。 但是,炼金锅的容量非常有限,它最多只能容纳www个原料。 所幸的是,每放入一个原料之前,小E可以从中取出一些原料,数量不能超过sss个。 我们定义第iii种原料的耐久度为:放入第iii种原料时锅内的原料总数 × ai\times\ a_i×  阅读详情

888. Fair Candy Swap

Description:

Alice and Bob have candy bars of different sizes: A[i] is the size of the i-th bar of candy that Alice has, and B[j] is the size of the j-th bar of candy that Bob has.

Since they are friends, they would like to exchange one candy bar each so that after the exchange, they both have the same total amount of candy. (The total amount of candy a person has is the sum of the sizes of candy bars they have.)

Return an integer array ans where ans[0] is the size of the candy bar that Alice must exchange, and ans[1] is the size of the candy bar that Bob must exchange.

If there are multiple answers, you may return any one of them. It is guaranteed an answer exists.

Example 1:

Input: A = [1,1], B = [2,2]
Output: [1,2]

Example 2:

Input: A = [1,2], B = [2,3]
Output: [1,2]

Example 3:

Input: A = [2], B = [1,3]
Output: [2,3]

Example 4:

Input: A = [1,2,5], B = [2,4]
Output: [5,4]

Note:
  • 1 <= A.length <= 10000
  • 1 <= B.length <= 10000
  • 1 <= A[i] <= 100000
  • 1 <= B[i] <= 100000
  • It is guaranteed that Alice and Bob have different total amounts of candy.
  • It is guaranteed there exists an answer.
题解:

核心思想是求出A的和sumA,B的和sumB,两者的差dis == (sumA - sumB) / 2。只要在B中找到一个数B[j],有B[j] + dis为A中的某个数A[i],即可交换。如Example1中,sumA为2,sumB为4,则有dis = -1,B[0] + dis = 1,A[0]为1,即为所求。
原理:
A[0] + A[1] + ... + A[i] + ... + A[na-1] = sumA = sumB + 2 * dis
B[0] + B[1] + ... + B[j] + ... + B[nb-1] = sumB
若A[i] == B[j] + dis,则:
A[0] + A[1] + ... + B[j] + dis + ... + A[na-1] = sumA = sumB + 2 * dis
A[0] + A[1] + ... + B[j] + ... + A[na-1] = sumB + dis      (1)

B[0] + B[1] + ... + (B[j] + dis) ... + B[nb-1] = sumB + dis
B[0] + B[1] + ... + A[i] ... + B[nb-1] = sumB + dis          (2)
易知:
A[0] + A[1] + ... + B[j] + ... + A[na-1] = B[0] + B[1] + ... + A[i] ... + B[nb-1]

C++
class Solution {
public:
    vector<int> fairCandySwap(vector<int>& A, vector<int>& B) {
        int sumA = 0, sumB = 0;
        int lenB = B.size();
        for(auto a: A) {
            sumA += a;
        }
        for(auto b : B) {
            sumB += b;
        }
        int dis = (sumA - sumB) /2;
        unordered_set<int> setA(A.begin(), A.end()); //将A转为set,提升查找效率
        for(int i = 0; i < lenB; i++) {
            if(setA.count(dis + B[i])) {
                return {dis + B[i], B[i]};
            }
        }
        return {};
    }
};
影音先锋视频播放器 专业视频播放工具,无毒,请放心下载使用。 立即下载

相关推荐

bt 种子文件解析工具

解析bt 种子文件的一个小工具,有兴趣的可以看下,大家共同进步和交流。我的QQ:110207457

5个可遇不可求的资源网站 赶紧收藏起来

还在为到处寻找资源而烦恼吗,今天我来和大家分享几款资源超多的网站,不管是影视、动漫,还是学习资源,都应有尽有。一起来看一下吧。 1、搬运工 可以说这是小编比较常用的影视资源网站了,可以说很多新上的影视资源,它里边比较迅速就有了,当然他也有各种类型的资源,不只是影视资源哦! 2、家里蹲大学 号称中国最大的教育视频网站,名字就是这么霸气,别的不说,先看一看网站主页的目录:计算机、经管、法学、外语、理...

doublerich的博客 1万+

视觉定位避坑指南:基于双mark点的坐标转换常见错误排查

本文详细解析了工业视觉项目中基于双mark点的坐标转换常见错误及排查方法,涵盖旋转矩阵构建、坐标系原点选择、图像预处理优化等关键环节。通过实战案例和代码示例,帮助工程师避免定位偏差,提升系统精度,特别适用于自动化检测和精密制造场景。

7z8x2c4v6b9的博客 167

Chrome 无法正常打开站点

问题描述:通过花生壳转发的域名在Chrome上无法打开,但是Firefox等可以正常打开。 目前显示的错误为如下两种:DNS_PROBE_FINISHED_NXDOMAIN ERR_NAME_NOT_RESOLVED

chritina的专栏 2910

多元相关性分析_PAST:最简便易用的统计学分析软件教程目录

欢迎来到PAST的世界!本教程并不是将PAST的所有功能均进行详细介绍,而只是挑选与生物、医学、微生物研究相关的统计学分析内容进行讲述。根据PAST内各项分析的标签分类,将该教程具体设置如下:PAST软件介绍PAST的基本信息数据的输入和修改数据的转换和标准化图像绘制 (Plot标签)点线图和直方图散点图条形图和箱须图饼图堆叠条形图三元相图气泡图单变量统计学分析 (Univariate标...

weixin_39605706的博客 3156

word 2013 长篇文档排版案例教程

office 2013 制作长文格式模板

1万+

网址大全

部署企业级微服务: JSON 在线格式化:https://www.json.cn/ ICON http://www.fontawesome.com.cn/ https://tool.lu/favicon/ /node_modules/@mdi/font/preview.html https://www.iconfont.cn/search/index?q=Oauth Jenkins 插件下载:http://updates.jenkins-ci.org/download/plugins/

技术吐槽中心 1326

VHDL按键消抖(状态机版本)

检测下降沿:设置一个和,分别代表之前的之前和之前的信号状态,若两个信号key_in_d2=1,key_in_d1=0,他俩的not key_in_d2 and key_in_d1为1,则说明下降沿产生,把它设置为标志位key_flag。延时计数:50MHz的板子每次计数需要20ns,而抖动时间大约为5-10ms。所以取7ms,作为延时时间。可以看见当检测到下降沿时,开始计数计数计满再次检测,若为低电平则为按下按键,否则为抖动。通过检测下降沿来临,延时计数再次检测,如果为低电平则为按键按下。

qq_69639216的博客 1084

还在忍受磁力搜索网站不忍直视的广告么?18年最新最好用的bt磁力搜索网站介绍

之前写过一篇推荐没有弹出广告并很少种子搜索网站的文章,结果过了一段时间发现我写文章的时候开了广告过滤器,难怪看不到广告,把一些有弹出广告的网站也推荐上去了,直接被打脸Σ(lliд゚ノ)ノ。所以我只好重新写一篇,推荐的文章(&gt;_&lt;)。1.bt大陆 https://www.btdalu.com首先推荐bt大陆,弹出广告没有,广告几乎没有用户体验非常出色综合体验5颗星2.bt177 http...

qq_42700060的博客 13万+

四足机器人关节电机FOC控制实战:从磁编码器校准到SVPWM调试避坑指南

本文详细解析了四足机器人关节电机FOC控制实战,涵盖磁编码器校准、电流环调试和SVPWM波形优化等关键环节。通过MIT Cheetah案例展示如何解决21倍电气误差问题,并提供相序自动校正、PI参数整定等实用代码片段,帮助工程师避开永磁同步电机(PMSM)控制中的常见陷阱。

weixin_29281915的博客 489

星链V3的2048条波束与1Tbps:多波束相控阵的工程代价

低轨卫星通信的容量提升,核心在于多波束相控阵天线的空间复用能力。相控阵通过控制大量天线单元的相位,可在同一阵面同时形成多条独立指向的波束,从而在有限频谱内成倍提升系统容量。星链V3宣称的2048条波束与1 Tbps汇聚吞吐量,正是基于这一原理:更多波束意味着更高的频率复用系数和更灵活的资源调度。但工程实现并非免费午餐,数字背后是供电、散热、重量、发射成本及运维复杂度的急剧攀升。从用户侧看,更精细的波束也带来切换频繁、低仰角衰减等新挑战。本文从多波束相控阵的基础原理出发,拆解波束形成、频谱复用和动态调度的工程

weixin_33462167的博客 347

85php.com,php85.com服务器iP

2020-11-27-----2021-03-02119.147.4.332020-10-11-----2020-11-2749.51.77.1362020-11-27-----2020-11-2749.51.79.2542020-06-20-----2020-09-20119.45.69.432020-06-20-----2020-09-20109.244.161.1752020-07-23--...

weixin_42679995的博客 1319

AI上推荐 之 协同过滤

㐇

Miracle8070 1万+

网站为什么突然访问不了?要如何解决?

很多用户在浏览网页的时候通常会遇到过网站打不开的现象,那么遇到网站打不开是什么原因呢?网站打不开又要如何解决?下面小编就带大家一起来看看。

2301_77388529的博客 1万+

【Android调试】高通adb识别不到设备的完整排查指南:从驱动到端口一步到位

本文系统梳理高通(Qualcomm)平台Android设备adb无法识别的完整排查流程。从最基础的USB连接检查开始,到Windows设备管理器中驱动状态的判断、高通USB驱动的正确安装与更新方法,再到adb端口被占用、USB调试未开启、驱动签名校验失败等高频场景的解决方案。每一步均配截图和操作命令,文末附常见报错速查表,适合做系统开发、刷机调试或者Android Framework bringup时遇到adb不通的工程师快速定位。

weixin_44081096的博客 282

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

线性DP例题(洛谷P5858 Golden Sword)及其单调队列优化

题目描述 制造一把金宝剑需要 n 种原料,编号为 1 到 n,编号为 i 的原料的坚固值ai。 炼金是很讲究放入原料的顺序的,因此小 E 必须按照 1 到 n 的顺序依次将这些原料放 入炼金锅。 但是,炼金锅的容量非常有限,它最多只能容纳 w 个原料。 所幸的是,每放入一个原料之前,小 E 可以从中取出一些原料,数量不能超过 s 个。 我们定义第 i 种原料的耐久度为:放入第 i 种原料时锅内的原料总数(包括正在放入的原料)× ai,则宝剑的耐久度为所有原料的耐久度之和。 小 E 当然想让他的宝剑的耐久度尽

Salvator_的博客 1595

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LeetCode题库第888题 公平的糖果棒交换

LeetCode题库第888题 公平的糖果棒交换 LeetCode第888道题 公平的糖果棒交换 首先,题目中说他们两个人的糖果的总数量是不一样的,并且要将A中的一个糖果和B的一个糖果交换后使得他们两个人的糖果的总数量相等。由此,交换糖果的目的是使得两个人的糖果的总数量相等,而要用A的那一个糖果和B中的那一个糖果交换是和他们两个糖果的总数量之差是相关的,例如:如果A的糖果的总数量比B的糖果的总重量多2,那么,就需要用A中重量为n的糖果来交换B中重量为n-1的糖果,注意:不是交换B中重量为n-2的糖果,因为:

maplecsd的博客 503

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

直线轨道上声音延迟信号分析

利用滑轨测量不同位置下发送信号与接收信号之间的试验延迟,从而确定距离。通过分析评价这种测量方法的有效性。 数据的来源 数据时通过基于STM32F103RE的AD、DA1采样板来控制音响发送Chirp声音信号和采集MIC接收到的声音信号的。 数据采样系统 演示中所使用的滑轨长度大约为1米,滑块有效移动距离为0.9米。通过ZIGBEE无线控制命令控制滑块做直线均匀运动。 设置在滑轨上的声音传感器 实验...

TSINGHUAJOKING 3578

「题解」P5858 「SWTR-03」Golden Sword

题目背景 小E不幸在一场战斗中失去了他的金宝剑。 题目描述 制造一把金宝剑需要n种原料,编号为1到n,编号为i 的原料的坚固值为ai​。炼金是很讲究放入原料的顺序的,因此小 E 必须按照1到n的顺序依次将这些原料放入炼金锅。但是,炼金锅的容量非常有限,它最多只能容纳w个原料。所幸的是,每放入一个原料之前,小 E可以从中取出一些原料,数量不能超过s个。我们定义第 i 种原料的耐久度为:放入第i种原料时锅内的原料总数*ai​,则宝剑的耐久度为所有原料的耐久度之和。小E当然想让他的宝剑的耐久度尽可能得大,这样他就

yu_______chen的博客 820

Leetcode888. 公平的糖果交换

Leetcode888. 公平的糖果交换 1. 问题描述 2. 思路 2.1 思路1 暴力求解 3. 代码 func fairCandySwap(aliceSizes []int, bobSizes []int) []int { var res []int aliceSum, bobSum := 0, 0 for i := 0; i < len(aliceSizes); i++ { aliceSum += aliceSizes[i] } fo

菜到不敢run 360

【LeetCode】888. Fair Candy Swap 公平的糖果棒交换(Python)

【LeetCode】888. Fair Candy Swap 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/fair-candy-swap/...

负雪明烛 2180

leetcode 888. Fair Candy Swap(公平的糖果交换)--Java题解

题目描述 爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。 因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。) 返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。 ...

leyao的博客 891

LeetCode:888. Fair Candy Swap - Python

问题描述: 888. 公平的糖果交换 Alice和Bob 有不同大小的糖果棒:A[i]是爱丽丝拥有的第i个糖果棒的大小,而B[j]是鲍勃拥有的第j个糖果棒的大小。 由于他们是朋友,他们想交换一个糖果,以便交换后,他们都有相同的糖果总量。 (一个人拥有的糖果总量是他们拥有的糖果大小的总和。) 返回一个整数数组ans,其中ans[0]是Alice必须交换糖果棒大小,ans[1]是Bob必须交换...

Growth Diary 1117

[leetcode]-888. Fair Candy Swap(C语言)

Alice and Bob have candy bars of different sizes: A[i] is the size of the i-th bar of candy that Alice has, and B[j] is the size of the j-th bar of candy that Bob has. Since they are friends, they wo...

shen_zhu的博客 433

C#LeetCode刷题之#888-公平的糖果交换(Fair Candy Swap)

问题 爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。 因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。) 返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。 如...

比特飞 1万+
上一篇: leetcode 49. Group Anagrams 题解
下一篇: leetcode 686. Repeated String Match 题解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值