news 2026/8/21 14:01:02

链式投票|流向贪心

作者头像

张小明

前端开发工程师

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/8/22 0:09:46

如何快速配置硬件信息修改工具:新手完全指南

如何快速配置硬件信息修改工具&#xff1a;新手完全指南 【免费下载链接】EASY-HWID-SPOOFER 基于内核模式的硬件信息欺骗工具 项目地址: https://gitcode.com/gh_mirrors/ea/EASY-HWID-SPOOFER 硬件信息修改工具 EASY-HWID-SPOOFER 是一款基于内核模式的强大工具&#…

作者头像 李华
网站建设 2026/8/21 6:38:36

快速验证Gradle依赖缓存问题的原型工具

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个轻量级原型工具&#xff0c;用于快速验证Gradle依赖缓存损坏问题的解决方案。工具应支持快速导入项目&#xff0c;模拟网络中断等常见问题场景&#xff0c;并验证修复方法的…

作者头像 李华
网站建设 2026/8/21 13:32:54

鸿蒙Electron进阶:系统能力深度整合与性能优化实战

鸿蒙Electron进阶&#xff1a;系统能力深度整合与性能优化实战 发布平台&#xff1a;CSDN 作者&#xff1a;XXX 标签&#xff1a;鸿蒙、Electron、系统调用、性能优化、跨端开发 前言&#xff1a;在上一篇《鸿蒙Electron&#xff1a;跨端开发新范式》中&#xff0c;我们掌握了…

作者头像 李华
网站建设 2026/8/21 23:19:09

Android自动化测试性能优化:5个方法快速解决图像识别效率问题

Android自动化测试性能优化&#xff1a;5个方法快速解决图像识别效率问题 【免费下载链接】uiautomator2 Android Uiautomator2 Python Wrapper 项目地址: https://gitcode.com/gh_mirrors/ui/uiautomator2 在移动应用自动化测试中&#xff0c;图像识别性能直接影响测试…

作者头像 李华
网站建设 2026/8/21 20:22:04

效率对比:传统vs基于bpmn-js的流程开发节省80%时间

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个bpmn-js效率对比演示工具&#xff0c;左侧展示传统代码方式实现简单采购流程&#xff08;需手动编写XML&#xff09;&#xff0c;右侧展示使用bpmn-js可视化编辑同样流程。…

作者头像 李华
网站建设 2026/8/21 13:36:27

AI如何利用ResizeObserver优化前端性能

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个AI辅助的响应式布局优化工具&#xff0c;使用ResizeObserver监听DOM元素尺寸变化&#xff0c;结合机器学习模型预测可能发生的布局变化。当检测到频繁变化的元素时&#xf…

作者头像 李华