news 2026/5/21 22:44:07

千问 LeetCode 2412.完成所有交易的初始最少钱数 C语言实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
千问 LeetCode 2412.完成所有交易的初始最少钱数 C语言实现

long long minimumMoney(int** transactions, int transactionsSize, int* transactionsColSize) {
long long totalLoss = 0; // 所有亏损交易的总亏损
int maxMin = 0; // 所有交易中 min(cost, cashback) 的最大值

for (int i = 0; i cashback) {
totalLoss += cost - cashback;
}

// 更新 max(min(cost, cashback))
int minVal = cost maxMin) {
maxMin = minVal;
}
}

return totalLoss + maxMin;
}

代码说明

1. 函数签名:long long minimumMoney(int** transactions, int transactionsSize, int* transactionsColSize)
- 这是 LeetCode C 语言题目的标准接口
- transactions 是二维数组
- transactionsSize 是交易数量
- transactionsColSize 是每行的列数(本题固定为 2)

2. 核心逻辑:
- totalLoss 用 long long 类型,防止溢出(cost 和 cashback 最大可达 10^9,累加可能超过 int 范围)
- 遍历每一笔交易,累加亏损交易的总亏损,同时记录 min(cost, cashback) 的最大值
- 最终返回 totalLoss + maxMin

3. 与 Java 版本的区别:
- C 语言没有 Math.max 和 Math.min,使用三元运算符替代
- 需要手动管理数组索引

复杂度分析

- 时间复杂度:O(n),只需一次遍历
- 空间复杂度:O(1),只使用常数个变量

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

ctfileGet:免费开源的城通网盘高速解析工具终极指南

ctfileGet:免费开源的城通网盘高速解析工具终极指南 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾经因为城通网盘的蜗牛下载速度而烦恼?几十KB/s的限速让下载大文件变…

作者头像 李华
网站建设 2026/5/17 9:57:29

终极B站视频下载指南:如何免费保存大会员专属4K高清内容

终极B站视频下载指南:如何免费保存大会员专属4K高清内容 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是不是经常遇到…

作者头像 李华
网站建设 2026/5/17 9:55:13

【Linux实战】ncurses库入门:从安装到打造你的第一个终端游戏

1. 为什么选择ncurses开发终端应用? 第一次接触终端界面编程时,我也被黑底白字的命令行窗口劝退过。直到发现用ncurses写的htop和vim这类工具,才意识到原来终端也能玩出这么多花样。这个诞生于1980年代的库,至今仍是Linux系统终端…

作者头像 李华