news 2026/4/18 10:28:40

链式投票|流向贪心

作者头像

张小明

前端开发工程师

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/18 7:28:07

Windows 11 Fixer终极指南:简单三步打造完美系统体验

Windows 11 Fixer终极指南&#xff1a;简单三步打造完美系统体验 【免费下载链接】Windows-11-Fixer A tool to "Fix" Windows 11 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-11-Fixer Windows 11 Fixer是一款强大的开源系统优化工具&#xff0c;专…

作者头像 李华
网站建设 2026/4/17 16:32:01

weditor实战:从零搭建微信小程序自动化测试

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个微信小程序自动化测试案例&#xff0c;使用weditor实现以下功能&#xff1a;1. 自动登录流程测试 2. 页面跳转验证 3. 表单提交测试 4. 异常场景处理。要求代码结构清晰&am…

作者头像 李华
网站建设 2026/4/18 7:38:30

大模型在企业培训中的5个创新应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个企业培训平台&#xff0c;集成大模型能力实现&#xff1a;1) 自动生成个性化培训内容 2) 模拟真实工作场景对话 3) 智能评估学员表现 4) 生成可视化学习报告。平台应支持多…

作者头像 李华
网站建设 2026/4/18 5:33:48

企业级漏洞扫描工具实战:从部署到优化

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个企业级漏洞扫描工具的使用指南&#xff0c;涵盖以下内容&#xff1a;1. 工具安装和初始配置&#xff1b;2. 设置扫描策略&#xff08;全量扫描、增量扫描、定时扫描&#x…

作者头像 李华
网站建设 2026/4/18 6:31:25

MinGW+C+VS Code实战:从安装到第一个程序

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个详细的MinGW安装和使用指南项目&#xff0c;包含&#xff1a;1. MinGW-w64安装包下载链接 2. 系统PATH配置说明 3. VS Code的C/C扩展配置 4. tasks.json和launch.json示例 …

作者头像 李华
网站建设 2026/4/18 6:31:35

效率提升300%:用AI工具秒杀CSS文本截断难题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请对比生成以下四种常见文本溢出场景的CSS解决方案&#xff1a;1. 单行文本省略 2. 多行文本省略 3. 表格单元格文本省略 4. 响应式布局中的动态省略。要求每种方案提供&#xff1a…

作者头像 李华