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

【LeetCode】每日一题 2024_2_2 石子游戏 VI(排序、贪心)

文章目录

  • LeetCode?启动!!!
  • 题目:石子游戏 VI
    • 题目描述
    • 代码与解题思路

LeetCode?启动!!!

题目:石子游戏 VI

题目链接:1686. 石子游戏 VI

题目描述

代码与解题思路

func stoneGameVI(aliceValues []int, bobValues []int) int {type pair struct { x, y int }pairs := make([]pair, len(aliceValues))// 把 Alice 和 Bob 的石子计分保存下来for i := 0; i < len(aliceValues); i++ {pairs[i] = pair{aliceValues[i], bobValues[i]}}// 根据我们分析的性质进行排序slices.SortFunc(pairs, func(p, q pair) int { return (q.x + q.y) - (p.x + p.y) })// 根据最优解计算 Alice 和 Bob 的得分a, b := 0, 0for i, v := range pairs {if i % 2 == 0 {a += v.x} else {b += v.y}}// 比较最后谁赢了if a > b {return 1} else if a < b {return -1}return 0
}

题目中 Alice 和 Bob 玩石子游戏,游戏的规则是:有一堆石子,每次可以拿石子堆中任意一个石子,拿过的石子不能再被拿

而 Alice 和 Bob 的计分方式是不同的,Alice 先手,如果要最优解,那 Alice 每次必须拿给自己和 Bob 加分最多的石子(这样自己加分多,Bob 少了这个石子加分就少了),也就是她拿的石子的 aliceValues[i] + bobValues[i] 越大越好

而 Bob 也是同样的,拿给自己和 Alice 加分最多的石子就行,也就是说,我们只需要按照这个规则升序排序 aliceValues[i] + bobValues[i],然后就能通过最优解求出他们最后到底谁会赢了

这次还学习了 go 语言 slices 包的自己指定规则排序数组:

slices.SortFunc(pairs, func(p, q pair) int {
return (q.x + q.y) - (p.x + p.y)
})

用:后一个数 - 前一个数 = 升序排序

这里的排序规则就是我们前面提到的 aliceValues[i] + bobValues[i],通过 pairs 数组保存住 Alice 和 Bob 每个石子的价值,遍历的时候计算,最后再比较他们的大小即可

相关文章:

【LeetCode】每日一题 2024_2_2 石子游戏 VI(排序、贪心)

文章目录 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01;题目&#xff1a;石子游戏 VI题目描述代码与解题思路 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 题目&#xff1a;石子游戏 VI 题目链接&#xff1a;1686. 石子游戏 VI 题目描述…...

一站式在线协作开源办公软件ONLYOFFICE,协作更安全更便捷

1、ONLYOFFICE是什么&#xff1f; ONLYOFFICE是一款功能强大的在线协作办公软件&#xff0c;可以创建编辑Word文档、Excel电子表格&#xff0c;PowerPoint&#xff08;PPT&#xff09;演示文稿、Forms表单等多种文件。ONLYOFFICE支持多个平台&#xff0c;无论使用的是 Windows、…...

Java进击框架:Spring-综合(十)

Java进击框架&#xff1a;Spring-综合&#xff08;十&#xff09; 前言Rest ClientsWebClientRestTemplateHTTP接口 JMS (Java消息服务)使用Spring JMS发送消息接收消息注释驱动的侦听器端点 JMXEmail任务执行和调度Spring TaskExecutor 抽象Spring TaskScheduler 抽象支持调度…...

2024年第九届信号与图像处理国际会议(ICSIP 2024)

2024第九届信号与图像处理国际会议&#xff08;ICSIP 2024&#xff09;将于2024年7月12-14日在中国南京召开。ICSIP每年召开一次&#xff0c;在过去的七年中吸引了1200多名与会者&#xff0c;是展示信号和图像处理领域最新进展的领先国际会议之一。本次将汇集来自亚太国家、北美…...

webassembly003 MINISIT mnist/convert-h5-to-ggml.py

数据结构 # Convert MNIS h5 transformer model to ggml format # # Load the (state_dict) saved model using PyTorch # Iterate over all variables and write them to a binary file. # # For each variable, write the following: # - Number of dimensions (int) # …...

fetch和axios的区别

概念不同 Fetch是一种新的获取资源的接口方式&#xff0c;可以直接使用Axios是一个基于XMLHttpRequest封装的工具包&#xff0c;需要引入才可以使用 传递数据的方式不同 Fetch则是需要放在body属性中&#xff0c;以字符串的方式进行传递Axios是放到data属性里&#xff0c;以对象…...

【unity小技巧】FPS简单的射击换挡瞄准动画控制

文章目录 射击动画控制换弹动画瞄准动画完结 射击动画控制 换弹动画 调用 瞄准动画 问题&#xff1a;瞄准时&#xff0c;但是动画会卡住&#xff0c;不会播放瞄准的待机动画 修改 调用 动画如果太快可以去修改播放速度 播放速度变慢了&#xff0c;可能导致切换待机动画也…...

如何获取时间戳

在JavaScript中&#xff0c;你可以使用Date对象来获取时间戳。以下是一个例子&#xff1a; javascriptvar timestamp new Date().getTime(); console.log(timestamp); 在这个例子中&#xff0c;new Date()创建了一个新的日期对象&#xff0c;.getTime()方法则返回自1970年1月…...

VSCode 设置代理

Open Visual Studio Code, click the settings icon in the lower left corner, and click Settings....

保姆级教程: 零门槛制作AI微信红包封面之入门篇

写在前面 本文旨在低门槛制作微信红包教程&#xff0c;人人均可上手! 操作步骤 AI红包制作平台: https://cover.fdfs.site 第一步: 先登录 alt text 可以使用谷歌&#xff0c;github直接登录&#xff0c;也可以用自己的邮箱注册 第二步: 设置自己的apiKey API-Key可以从平台 ht…...

Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透

概述 Redis 的缓存异常问题&#xff0c;除了数据不一致问题外&#xff0c;还会面临其他三个问题&#xff0c;分别是缓存雪崩、缓存击穿、缓存穿透。这三个问题&#xff0c;一旦发生&#xff0c;会导致大量的请求积压到数据库。若并发量很大&#xff0c;就会导致数据库宕机或故…...

Leetcode—2670. 找出不同元素数目差数组【简单】

2024每日刷题&#xff08;一零七&#xff09; Leetcode—2670. 找出不同元素数目差数组 哈希表实现代码 class Solution { public:vector<int> distinctDifferenceArray(vector<int>& nums) {unordered_set<int> s;int n nums.size();vector<int&g…...

App ICP备案获取iOS和Android的公钥和证书指纹

依照《工业和信息化部关于开展移动互联网应用程序备案工作的通知》&#xff0c;向iOS和安卓平台提交App时需要先提交ICP备案信息。 iOS平台&#xff1a; 1、下载appuploader工具&#xff1a;Appuploader home -- A tool improve ios develop efficiency such as submit ipa to…...

猿创征文 | 项目整合KafkaStream实现文章热度实时计算

个人简介&#xff1a; > &#x1f4e6;个人主页&#xff1a;赵四司机 > &#x1f3c6;学习方向&#xff1a;JAVA后端开发 > ⏰往期文章&#xff1a;SpringBoot项目整合微信支付 > &#x1f514;博主推荐网站&#xff1a;牛客网 刷题|面试|找工作神器 > &#…...

状态压缩 笔记

棋盘式的f[i][j]中表示状态的j可以是状态本身也可以是在合法状态state中的下标 用状态本身比较方便&#xff0c;用下标比较省空间 用下标的话可以开id[M]数组记录一下 蒙德里安的梦想 求把 NM的棋盘分割成若干个 12的长方形&#xff0c;有多少种方案。 例如当 N2&#xff0…...

Java 数据结构篇-实现二叉搜索树的核心方法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 二叉搜索树的概述 2.0 二叉搜索树的成员变量及其构造方法 3.0 实现二叉树的核心接口 3.1 实现二叉搜索树 - 获取值 get(int key) 3.2 实现二叉搜索树 - 获取最小…...

go语言(二十一)---- channel的关闭

channel不像文件一样需要经常去关闭&#xff0c;只有当你确实没有任何发送数据了&#xff0c;或者你想显示的结束range循环之类的&#xff0c;才去关闭channel。关闭channel后&#xff0c;无法向channel再发送数据&#xff0c;&#xff08;引发pannic错误后&#xff0c;导致接收…...

【PyQt】01-PyQt下载

文章目录 前言静态库 一、PyQt是什么&#xff1f;二、安装1.Windows环境下安装安装PyQt5Designer 2.Liunx环境下安装 总结 前言 拜吾师 PyQt5 快速入门 静态库 补充一点知识&#xff1a; Windows&#xff1a; .lib Linux: .a .so(动态库) 简单描述PyQt就是python调用C的Qt文…...

不一样的味觉体验:精酿啤酒与烤肉的绝妙搭配

在繁华的都市生活中&#xff0c;人们总是在寻找那份与众不同的味觉享受。当夏日的微风轻轻拂过&#xff0c;你是否想过&#xff0c;与三五好友围坐在一起&#xff0c;拿着Fendi Club啤酒与烤肉的绝妙搭配&#xff0c;畅谈生活点滴&#xff0c;感受那份惬意与自在&#xff1f; F…...

linux系统ansible的jiaja2的语法和简单剧本编写

jianja2语法和简单剧本 jinja2语法Jinja default()设定if语句for语句 ansiblejiaja2的使用ansible目录结构&#xff1a;tasks目录下文件内容&#xff1a;nginx模板文件ansible变量文件ansible主playbook文件测试并执行&#xff1a;查看检测执行结果 剧本编写安装apache安装mysq…...

Python实战:构建个人古诗知识库,从古诗文网高效采集与存储

1. 为什么你需要一个古诗知识库&#xff1f; 作为一个诗词爱好者&#xff0c;我经常遇到这样的困扰&#xff1a;读到一首好诗想收藏&#xff0c;结果过几天就忘了出处&#xff1b;想查找某个主题的诗句&#xff0c;却记不清具体内容&#xff1b;看到喜欢的诗人作品&#xff0c;…...

SpringBoot+Tess4j:轻松实现OCR功能

一、引言二、功能演示三、功能实现1. 描述2. 编码实现四、源码五、结束语一、引言你是否曾遇到过这样的情况&#xff1a;看到一段有用的文本&#xff0c;想要快速复制下来&#xff0c;却只能眼巴巴地盯着屏幕&#xff0c;手动输入&#xff1f;其实&#xff0c;Java 也可以轻松实…...

如何将 iQOO 手机备份到Mac

iQOO是vivo旗下的智能手机品牌&#xff0c;以其强劲的性能、出色的游戏体验和极具竞争力的价格而闻名。它深受那些希望以合理价格购买高性能Android手机的用户欢迎。然而&#xff0c;由于缺乏官方的 macOS 管理工具&#xff0c;许多用户发现将 iQOO 手机备份到Mac并非易事。幸运…...

多宽带联网(五) OpenWrt中MWAN3高级策略分流实战(游戏加速、视频优化场景)

1. MWAN3策略分流的核心价值 家里拉了两条宽带却发现刷视频卡、打游戏延迟高&#xff1f;这种情况我遇到过太多次了。去年给朋友家调试网络时&#xff0c;他同时接了电信和联通两条200M宽带&#xff0c;但看4K视频还是缓冲&#xff0c;玩外服游戏延迟总在200ms以上。后来用Open…...

古基因组学:降解DNA的损伤模式、污染评估与群体历史推断

点击 “AladdinEdu&#xff0c;你的AI学习实践工作坊”&#xff0c;注册即送-H卡级别算力&#xff0c;沉浸式云原生集成开发环境&#xff0c;80G大显存多卡并行&#xff0c;按量弹性计费&#xff0c;教育用户更享超低价。 摘要&#xff1a;古基因组学通过对古代生物遗骸中高度降…...

MedGemma-X精彩案例分享:自然语言提问触发的专业级影像分析报告

MedGemma-X精彩案例分享&#xff1a;自然语言提问触发的专业级影像分析报告 1. 重新定义智能影像诊断的新标杆 想象一下这样的场景&#xff1a;一位放射科医生面对堆积如山的X光片&#xff0c;只需要用自然语言问一句"这张胸片有没有肺炎迹象&#xff1f;"&#xf…...

半导体制造中的ProcessJob与Control Job:从定义到实战避坑指南

半导体制造中的ProcessJob与Control Job&#xff1a;从定义到实战避坑指南 在半导体制造的高精度世界里&#xff0c;每一片晶圆的流转都像一场精密编排的交响乐。而ProcessJob&#xff08;PJ&#xff09;和Control Job&#xff08;CJ&#xff09;就是这场演奏中不可或缺的指挥…...

USB251xB集线器I²C控制库:嵌入式USB设备扩展实战指南

1. 项目概述SparkFun USB Hub Qwiic USB251x 是一款面向嵌入式原型开发与量产过渡阶段的轻量级 USB 2.0 集线器控制库&#xff0c;专为 SparkFun 自研的 Qwiic 兼容 USB251xB 系列 Hub 模块&#xff08;SPX-18014&#xff09;设计。该库并非通用 USB 协议栈&#xff0c;而是聚焦…...

革新性Koikatu体验增强工具:KK-HF_Patch效率提升指南

革新性Koikatu体验增强工具&#xff1a;KK-HF_Patch效率提升指南 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 你是否曾在《Koikatu》游戏中遇到…...

软考高项“上岸”指南:三位宝藏老师,专治你的备考焦虑

备战软考高项&#xff0c;尤其是面对2026年可能更加灵活的考情&#xff0c;选择一位对的引路人至关重要。今天&#xff0c;就为大家深度介绍软考老金团队的三位王牌导师——尹老师、金老师、秦老师。他们风格互补&#xff0c;却有着共同的目标&#xff1a;陪你稳稳上岸。尹老师…...