news 2026/4/14 14:50:05

链式投票|流向贪心

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
链式投票|流向贪心

lc

lc797

先凑总和非负,找唯一负数位置

从近到远取两边正数补负数,累计移动步数得最小操作数

class Solution {
public:
long long minMoves(vector<int>& balance) {
long long total = 0;
int neg_idx = -1;
for (int i = 0; i < balance.size(); i++) {
int x = balance[i];
total += x;
if (x < 0) {
neg_idx = i;
}
}

if (total < 0) { // 总和必须非负
return -1;
}
if (neg_idx < 0) { // 没有负数,无需操作
return 0;
}

int n = balance.size();
int need = -balance[neg_idx];
long long ans = 0;
for (int dis = 1; ; dis++) { // 把与 neg_idx 相距 dis 的数移到 neg_idx
int s = balance[(neg_idx - dis + n) % n] + balance[(neg_idx + dis) % n];
if (s >= need) {
ans += 1LL * need * dis; // need 个 1 移动 dis 次
return ans;
}
ans += 1LL * s * dis; // s 个 1 移动 dis 次
need -= s;
}
}
};

lc277

1.找候选人

2.check候选人(3种situation)

/* The knows API is defined for you.
bool knows(int a, int b); */

class Solution
{
public:
int findCelebrity(int n)
{
int candidate = 0; //候选人
for (int x = 1; x < n; x ++)
{
if ( knows(candidate, x) == true ) //若候选人认识别人,就不可能是名人。名人不认识其他人
{
candidate = x; //所有人,一定认识名人
//////小于x的那些,要么是因为 (1)被人不知,if被人知,就抢到了candidate了
//////(2) 要么是因为认识了别人,就放弃了candidate
}
}

for (int x = 0 ; x < n; x ++)
{
if (candidate == x) //名人不认识其他人,但是认识自己
continue;
if ( knows(candidate, x) == true)
return -1; //名人不应该认识 anyone
if (knows(x, candidate) == false)
return -1; //anyone 认识名人
}

return candidate;
}
};

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 10:31:26

3D角色一键绑定:AI驱动的自动骨骼生成技术深度解析

3D角色一键绑定&#xff1a;AI驱动的自动骨骼生成技术深度解析 【免费下载链接】UniRig One Model to Rig Them All: Diverse Skeleton Rigging with UniRig 项目地址: https://gitcode.com/gh_mirrors/un/UniRig 还在为复杂3D模型的骨骼绑定而头疼吗&#xff1f;传统手…

作者头像 李华
网站建设 2026/4/15 10:31:23

AI如何自动化LVM扩展操作:lvextend命令的智能实现

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个AI辅助的LVM扩展工具&#xff0c;能够自动分析系统磁盘空间使用情况&#xff0c;智能推荐lvextend参数&#xff0c;并生成安全的执行脚本。工具应包含以下功能&#xff1a;…

作者头像 李华
网站建设 2026/4/11 6:33:05

3分钟掌握中国手机号码验证:ChinaMobilePhoneNumberRegex终极指南

在中国移动互联网应用开发中&#xff0c;手机号码验证是一个不可或缺的环节。ChinaMobilePhoneNumberRegex作为专门针对中国手机号码验证的开源库&#xff0c;为开发者提供了简单高效的解决方案。无论你是前端工程师还是后端开发者&#xff0c;这个库都能帮你快速实现手机号码格…

作者头像 李华
网站建设 2026/4/11 12:08:25

小白必看:Furmark显卡测试入门指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个交互式Furmark学习应用&#xff0c;包含&#xff1a;1. 分步骤视频教程 2. 模拟测试演示功能 3. 关键术语解释弹窗 4. 安全操作检查清单 5. 测试结果简单解读向导。要求界面…

作者头像 李华
网站建设 2026/4/9 18:27:21

AMD显卡如何成为你的本地AI引擎:解锁大模型运行新方式

AMD显卡如何成为你的本地AI引擎&#xff1a;解锁大模型运行新方式 【免费下载链接】ollama-for-amd Get up and running with Llama 3, Mistral, Gemma, and other large language models.by adding more amd gpu support. 项目地址: https://gitcode.com/gh_mirrors/ol/olla…

作者头像 李华
网站建设 2026/4/14 3:43:53

联想拯救者工具箱终极指南:10个提升笔记本性能的技巧

联想拯救者工具箱&#xff08;Lenovo Legion Toolkit&#xff09;是一款专为拯救者系列笔记本设计的轻量化性能管理工具&#xff0c;通过直接与硬件底层通信&#xff0c;提供比官方软件更高效纯粹的性能调节方案。这款工具彻底摆脱了后台服务驻留的负担&#xff0c;以低于5MB的…

作者头像 李华