ICode9

精准搜索请尝试: 精确搜索
  • C++ NC7 买卖股票的最好时机2021-09-18 09:02:48

    NC7 买卖股票的最好时机 方法的时间复杂度O(n),空间复杂度O(1) int maxProfit(vector<int>& prices) { //当前利润 int curProfit = 0; //当前最大利润 int result = 0; for (int i = 1; i < prices.size(); i++) {

  • 状态机DP2021-09-14 11:34:01

    简介 简单来说就是从一个状态变成另一个状态的路径 感觉还是挺新颖的. 714 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ code class Solution { public: int maxProfit(vector<int>& prices, int fee) { if(prices.size

  • leetcode-剑指 Offer 63. 股票的最大利润2021-09-10 22:58:32

    一、题目 买卖一次股票的最大利润 二、思路 1、定义一个最小值,实时保持搜索过的最小值 2、定义一个values利润,实时比较当前值和最小值的差值 三、代码 class Solution { public: int maxProfit(vector<int>& prices) { if(prices.empty()) {

  • leetcode-123. 买卖股票的最佳时机 III2021-09-07 22:34:36

    一、题目 二、思路 1、确定dp数组以及下标的含义 一天一共就有五个状态, 0. 没有操作 第一次买入 第一次卖出 第二次买入 第二次卖出 dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金。 2、确定递推公式 需要注意:dp[i][1],表示的是第i天,买入

  • leetcode 714买卖股票的最佳时机含手续费 贪心算法2021-09-07 21:34:15

    给定一个整数数组prices,其中第i个元素代表了第i天的股票价格。整数fee代表了交易股票的手续费用。可以无限次的完成交易,但是每笔交易都需要付手续费。如果你已经购买一个股票,在卖出它之前你就不能再继续购买了。 返回获得利润的最大值。 输入:prices = [1, 3, 2, 8, 4, 9], fee =

  • 买卖股票的最佳时机 II2021-09-05 14:00:53

    买卖股票的最佳时机 II 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: pri

  • 这个方法,股票月入10w2021-09-01 14:32:20

    目录说在前面引例:只能交易一次一、动态数组定义二、状态转移方程三、初始化四、优化无限制买卖一、动态数组定义二、状态转移方程三、初始化四、优化交易 2 次,最大利润?一、动态数组定义二、状态转移方程三、初始化四、优化交易多次,最大利润? hello,我是 Johngo! 股市一点红,股市一点绿

  • 力扣309-最佳买卖股票时期(含冷冻期)2021-08-25 14:29:46

            买卖股票系列的第三道题,采用的算法也是动态规划算法。核心思想就是计算每天收益时要分三种情况,分别对应当天结束后的交易状态,具体解析过程参考代码示例。 package likou; /* * 最佳买卖股票时期(含冷冻期) * 题干: * 给定一个整数数组prices,其中第i个元素代表

  • 力扣-123. 买卖股票的最佳时机 III2021-08-25 11:02:53

    解题思路 Java代码如下: class Solution { int inf = 0x3f3f3f3f; public int maxProfit(int[] prices) { /* * dp[i][j][k]:i表示天数,j表示当前是否持股(j=0、1),k表示卖出的次数(k=0、1、2) */ int n = prices.length; int[][][

  • leetcode 买卖股票的最佳时机 IV2021-08-24 09:32:16

         这是一道hard题,和之前的买股票三都是同一类型,无非是限制的k为2或不知到k的值,但解决思路都是一样,三重dp,第一维记录第几天,第二位记录还最多能交易的次数,第三维记录手中是否存有股票,具体见算法思想中的股票问题。 public int maxProfit(int k, int[] prices) {

  • 剑指 Offer 63. 股票的最大利润(中等)2021-08-23 14:34:02

    通过率 63.4% 题目链接 题目描述: 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不

  • leetcode 买卖股票的最佳时机 II2021-08-22 11:32:37

        比较简单常见的股票买卖问题,不限制交易的次数而去得最大利润。   思路一:    其实很好理解,想获得最大利润,我们可以遍历数组,直接把所有股票的上升阶段都加起来即可。 public int maxProfit(int[] prices) { int maxProfit=0; for(int i=0;i<prices.leng

  • LeetCode 最佳买卖股票时机含冷冻期2021-08-21 14:33:19

        dp[i][0] 表示到第 i 天不持股的最大利润,dp[i][1] 表示到第 i 天持股的最大利润,dp[i][2] 表示到第 i 天处于冷冻期的最大利润,表示第 i + 1 天不能买入。 初始化的时候整体初始化为 -INF 即可,持股即买下这一天的股票,直接减去 price[i] 即可。 class Solution { public:

  • 2021-08-182021-08-20 15:01:43

    买卖股票的最佳时机 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: price

  • leetcode 买卖股票的最佳时机2021-08-20 10:02:34

        用简单的暴力法或者一次遍历,用minprice和maxprofit记录最小买入价格以及最大收益即可。     public int maxProfit(int prices[]) { int minprice = Integer.MAX_VALUE; int maxprofit = 0; for (int i = 0; i < prices.length; i++) {

  • 买卖股票的最佳时机2021-08-18 20:02:35

    这是一个系列,也是dp经典题,特别写篇博客。 leetcode 121 买卖股票的最佳时机 简单 只能买卖一次股票,那只需要从第一天开始一次遍历,不停地更新买的最低价和能赚到的最大利润即可。 参考代码 class Solution { public: int maxProfit(vector<int>& prices) { int ans=0,l

  • [LeetCode] #121 买卖股票的最佳时机2021-08-11 15:31:34

    给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0

  • 股票问题2021-08-07 04:00:50

    立扣 121 题 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需

  • 经典动态规划:股票交易——(LC188(脑壳痛))2021-08-06 21:33:18

    题目: 给定一段时间内每天的股票价格,已知你只可以买卖各 k 次,且每次只能拥有一支股票,求 最大的收益。 输入一个一维整数数组,表示每天的股票价格;以及一个整数,表示可以买卖的次数 k。输 出一个整数,表示最大的收益。 思路: 使用一系列变量存储「买入」的状态,再用一系列变量存储「卖出

  • LeetCode | 买卖股票的最佳时机2021-08-05 16:34:47

    给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回

  • 121. 买卖股票的最佳时机2021-08-03 08:33:23

    package cn.jiedada;import org.junit.Test;import java.util.*;/**给定一个只包括 '(',')','{','}','[',']' 的字符串 s , * 判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 */class Solution { public static vo

  • 数字问题7:股票问题2021-08-02 23:06:18

    在LeetCode中有好几道股票的问题,我们后面学习动态规划还是再分析,现在先用基本的方法试一试。 1.买卖股票的最佳时机 假设你有一个数组,其中第i个元素是股票在第i 天的价格。 你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。

  • 买卖股票的最佳时机III2021-08-02 19:01:55

        详细思路 具有某种递归关系,最多进行几笔用第三维,不可能作为边界的初始化为-0x3f3f3f3f,k次数超过一半就是无数次交易的函数   精确定义 dpijt 第i天0代表还没开始1代表第1天,0无股票1有股票,正在处理第t笔交易,t=0代表最多买入0次,t=1代表最多买入一次   转移 3 3 5 0 0 3 1 4

  • 算法-贪心思想2021-08-02 09:03:21

    算法-贪心思想       庭前看玉树,肠断忆连枝   一、剪绳子 1、题目描述 把一根绳子剪成多段,并且使得每段的长度乘积最大。 n = 2 return 1 (2 = 1 + 1) n = 10 return 36 (10 = 3 + 3 + 4) 2、解题思路 贪心 尽可能得多剪长度为 3 的绳子,并且不允许有长度为 1 的绳子出现

  • LeetCode第121题:买卖股票的最佳时机(python)2021-08-01 20:03:40

    题目: 思路1: 暴力求解,用两层循环,用来寻找最大差值,非常简单(但在LeetCode上大概率出现超时的情况) 代码如下: class Solution: def maxProfit(self, prices: List[int]) -> int: n = len(prices) ans = 0 if n == 0: return 0 f

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有