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

Day 25:股票的最大利润 + 1到n求和

数组 prices 记录了某芯片近期的交易价格,其中 prices[i] 表示的 i 天该芯片的价格。你只能选择 某一天 买入芯片,并选择在 未来的某一个不同的日子 卖出该芯片。请设计一个算法计算并返回你从这笔交易中能获取的最大利润。

如果你不能获取任何利润,返回 0。

示例 1:

输入:prices = [3, 6, 2, 9, 8, 5]
输出:7
解释:在第 3 天(芯片价格 = 2)买入,在第 4 天(芯片价格 = 9)卖出,最大利润 = 9 - 2 = 7。

LCR 188. 买卖芯片的最佳时机 - 力扣(LeetCode)

很标准的动态规划题目

class Solution {
    public int bestTiming(int[] prices) {
        if(prices.length == 0){
            return 0;
        }
        int[] dp = new int[prices.length];
        dp[0] = 0;
        int min = prices[0];
        for(int i = 1; i < prices.length; i++){
            if(prices[i] < min) min = prices[i];
            if(prices[i] - min > dp[i - 1]){
                dp[i] = prices[i] - min;
            } else{
                dp[i] = dp[i - 1];
            }
        }

        return dp[prices.length - 1];
    }
}

 

请设计一个机械累加器,计算从 1、2... 一直累加到目标数值 target 的总和。注意这是一个只能进行加法操作的程序,不具备乘除、if-else、switch-case、for 循环、while 循环,及条件判断语句等高级功能。

示例 1:

输入: target = 5
输出: 15

示例 2:

输入: target = 7
输出: 28

感觉可以用递归

但是条件判断不能用,没有递归出口。

用逻辑运算符实现了递归出口:

class Solution {
    public int mechanicalAccumulator(int target) {
        boolean x = target > 1 && (target += mechanicalAccumulator(target - 1)) > 0;
        return target;
    }
}

相关文章:

  • Pyside6 开发 使用Qt Designer
  • getID3获取本地或远程视频时长
  • 如何高效利用 Postman Mock Server? 模拟 API 响应,加速开发
  • Google PLA 营销库存服务设计技术难点与要点
  • 【PySpark大数据分析概述】01 大数据分析概述
  • 编程技术水平横向和垂直发展的抉择全方位分析
  • 复习一下冒泡排序算法
  • 推荐:大模型靠啥理解文字?通俗解释:词嵌入embedding
  • 06-ADC
  • MYTOOL-电路模块
  • windows安装JDK并配置环境变量
  • Arduino示例代码讲解:Serial Event example 连续事件例子
  • 鸿蒙北向应用开发:deveco 5.0 kit化文件相关2
  • python经典类、新式类写法、多继承
  • docker save如何迁移镜像更节省空间?
  • 数据结构与算法:2,冒泡排序
  • 配置完nfs后vmware虚拟机下ubuntu/无法联网问题
  • iPaaS集成平台如何帮助制造业实现数字化转型
  • 某投行日志记录解决方案二之日志异步落盘: 自定义注解+反射+AOP+异步多线程,实现高并发场景下的统一日志治理方案
  • 【Android】屏幕刷新机制(概览)
  • 企业网站建设的基本原则/排名前50名免费的网站
  • 怎么让百度收录你的网站/河南网站推广优化排名
  • 免费制作自己的网站长/外贸平台排行榜前十名
  • cloudflare做侵权网站/中国女排联赛排名
  • 网站开发后端技术/百度推广点击一次多少钱
  • wordpress调用搜索功能/seo课程在哪培训好