首页 > 其他分享 >剑指 Offer 63. 股票的最大利润

剑指 Offer 63. 股票的最大利润

时间:2023-09-11 19:56:48浏览次数:38  
标签:return Offer int res 63 prices minv 利润

题目链接: 剑指 Offer 63. 股票的最大利润

题目描述:

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?

解法思路:

使用 minv 记录前 i 天的最低价格,第 i 天卖出的利润就是 prices[i] - minv ,遍历一遍数组,不断更新最大利润

代码:

func maxProfit(prices []int) int {
    var res int
    n := len(prices)

    if n == 0 {
        return res
    }
    // minv 表示前 i 天最低的价格
    for i,minv := 0,prices[0];i < n;i++{
        // 如果第i天卖出,更新利润,更新最小值
        res = max(res,prices[i] - minv)
        minv = min(minv,prices[i])
    }
    return res
}
func max(a,b int)int{
    if a > b {
        return a
    }
    return b
}
func min(a,b int)int{
    if a < b {
        return a
    }
    return b
}

标签:return,Offer,int,res,63,prices,minv,利润
From: https://www.cnblogs.com/lxing-go/p/17694326.html

相关文章

  • 剑指 Offer 60. n个骰子的点数
    题目链接:剑指Offer60.n个骰子的点数题目描述:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。解法思路:还未理解代码://通常做法是声明一个二维数组dp,dp[i][j]代表前i个骰子的点数和j的概率,//并执行状态转移。而由于......
  • 剑指 Offer 61. 扑克牌中的顺子
    题目链接:剑指Offer61.扑克牌中的顺子题目描述:从若干副扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为0,可以看成任意数字。A不能视为14。解法思路:代码://1.将所有的0删掉,看剩下的数//2.看有没有......
  • Android程序员掌握这些面试技巧,offer拿到手软
    前言面试的顺利与否,直接决定了你是否能获得心仪的offer以及是否能拿到满意的薪资。如果说,简历是获得面试的通行证的话,那面试无疑是决定你是否能获得这份工作的重中之重。因此为自己的面试认真做个准备还是性价比很高的一件事情。面试前准备的四要素,简历、面经、知己知彼,录音设备。......
  • 剑指 Offer 59 - I. 滑动窗口的最大值
    题目链接:剑指Offer59-I.滑动窗口的最大值题目描述:给定一个数组nums和滑动窗口的大小k,请找出所有滑动窗口里的最大值。解法思路:单调队列:维护一个单调的队列,队列中保存的是对应数字的数组下标每新加进来一个元素,首先删除队头(超出滑动窗口的范围的值)然后比较当前元......
  • PPT| 美的集团632战略规划项目详细介绍 P54
    本人从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.【智能制造数字化咨询】该PPT共54页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击右上角红色按钮关注+私信。......
  • 剑指 Offer 56 - II. 数组中数字出现的次数 II
    题目链接:剑指Offer56-II.数组中数字出现的次数II题目描述:在一个数组nums中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。解法思路:代码:......
  • 剑指 Offer 57 - II. 和为s的连续正数序列
    题目链接:剑指Offer57-II.和为s的连续正数序列题目描述:输入一个正整数target,输出所有和为target的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。解法思路:双指针:当总和小于target时,j指针向后移动,直到大于或等于停......
  • Java版剑指offer:平衡二叉树
    Java版剑指offer:平衡二叉树描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(BalancedBinaryTree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉......
  • java版本剑指offer:链表中倒数最后k个结点
    java版本剑指offer:链表中倒数最后k个结点描述输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为0的链表。最简单的方式就是使用两个指针,第一个指针先移动k步,然后第二个指针再从头开始,这个时候这两个指针......
  • java版本剑指offer:反转链表
    java版本剑指offer:反转链表描述输入一个链表,反转链表后,输出新链表的表头。示例1输入:{1,2,3}返回值:{3,2,1}此题想考察的是:如何调整链表指针,来达到反转链表的目的。初始化:3个指针:1)pre指针指向已经反转好的链表的最后一个节点,最开始没有反转,所以指向null2)cur指针指向待反转链表......