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

LeetCode:2412. 完成所有交易的初始最少钱数(贪心 java)

目录

2412. 完成所有交易的初始最少钱数

题目描述:

实现代码与解析:

贪心

贪心:


2412. 完成所有交易的初始最少钱数

题目描述:

        给你一个下标从 0 开始的二维整数数组 transactions,其中transactions[i] = [costi, cashbacki] 。

数组描述了若干笔交易。其中每笔交易必须以 某种顺序 恰好完成一次。在任意一个时刻,你有一定数目的钱 money ,为了完成交易 i ,money >= costi 这个条件必须为真。执行交易后,你的钱数 money 变成 money - costi + cashbacki 。

请你返回 任意一种 交易顺序下,你都能完成所有交易的最少钱数 money 是多少。

示例 1:

输入:transactions = [[2,1],[5,0],[4,2]]
输出:10
解释:
刚开始 money = 10 ,交易可以以任意顺序进行。
可以证明如果 money < 10 ,那么某些交易无法进行。

示例 2:

输入:transactions = [[3,0],[0,3]]
输出:3
解释:
- 如果交易执行的顺序是 [[3,0],[0,3]] ,完成所有交易需要的最少钱数是 3 。
- 如果交易执行的顺序是 [[0,3],[3,0]] ,完成所有交易需要的最少钱数是 0 。
所以,刚开始钱数为 3 ,任意顺序下交易都可以全部完成。

提示:

  • 1 <= transactions.length <= 105
  • transactions[i].length == 2
  • 0 <= costi, cashbacki <= 109

实现代码与解析:

贪心

class Solution {
    public long minimumMoney(int[][] transactions) {
        
        long cur = 0;
        int ma = 0;
        for (int[] t: transactions) {
            cur += Math.max(t[0] - t[1], 0);
            ma = Math.max(ma, Math.min(t[0], t[1]));
        }
        return cur + ma;
    }
}

贪心:

        考虑最坏情况即可,就是在所有亏损进行的情况下,买一个花费最贵的。

        cur表示亏损总和。

        核心是最后一笔交易,如果是亏钱后的第一笔赚钱交易,那么直接买最贵的即可(赚的也多,后面的一定买得起)。如果是亏钱是最后一笔交易,那么实际上最后的这笔亏钱获得的收益我们没有利用到(后面没有能买的了),但是这笔交易cur中已经多减了,我们再给加上。

        所以:ma = Math.max(ma, Math.min(t[0], t[1]));


http://www.kler.cn/a/520290.html

相关文章:

  • 上海亚商投顾:沪指冲高回落 大金融板块全天强势 上海亚商投
  • Airflow:Airflow子流程应用实践
  • 笔试-二维数组2
  • 可以称之为“yyds”的物联网开源框架有哪几个?
  • iOS 集成ffmpeg
  • debian12.9编译freeswitch1.10.12【默认安装】
  • Spring MVC 中的 DispatcherServlet:工作流程与应用场景解析
  • FreeRTOS实时操作系统学习小结
  • kubernetes 核心技术-Service
  • 【SQL注入】DVWA靶场SQL注入实践
  • 在线可编辑Excel
  • 【超详细】C#事件
  • MyBatis最佳实践:提升数据库交互效率的秘密武器
  • 聊一聊 CSS 样式的导入方式
  • 使用Ollama部署deepseek大模型
  • unity制作动画的技巧相关注意点
  • 证券投资和量化交易的概率和预测的准确性
  • 深入探索 Vue 3 Markdown 编辑器:高级功能与实现
  • 飞书项目流程入门指导手册
  • 输入带空格的字符串,求单词个数
  • javaSE.方法的重写
  • Python元组详解:不可变序列的魅力
  • git reset (取消暂存,保留工作区修改)
  • 一些烦人的go设置 goland
  • 系统架构设计基础:概念与原则
  • 笔灵ai写作技术浅析(一)