首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【Offer】[63] 【股票的最大利润】
】的更多相关文章
剑指 Offer 63. 股票的最大利润 + 动态规划
剑指 Offer 63. 股票的最大利润 Offer_63 题目描述 方法一:暴力法 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/13 23:29 */ import java.util.Arrays; /** * 题目详情:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? */ /** * 方法一:暴力法 */ public class Offer_6…
【Java】 剑指offer(63) 股票的最大利润
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖交易该股票可能获得的利润是多少?例如一只股票在某些时间节点的价格为{9, 11, 8, 5,7, 12, 16, 14}.如果我们能在价格为5的时候买入并在价格为16时卖出,则能收获最大的利润11. 思路 遍历每一个数字,并保存之前最小的数字,两者差最大即为最大利润. 值得注意的是,我自己一开始写的代码是默认不能亏…
《剑指offer》面试题63. 股票的最大利润
问题描述 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 . 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格. 示例 2: 输入: [7,6,4,3,1] 输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0. 限制: 0 <=…
剑指offer——73股票的最大利润
题目: 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?例如,一只股票在某些时间节点的价格为{9,11,8,5,7,12,16,14}.如果我们能在价格为5的时候买入并在价格为16时卖出,则能收获最大的利润11. 题解: 简单地一批 int maxBenifit(vector<int>data) { ); ], res = ; ; i < data.size(); ++i) { res = res >= data[i] - minV ?…
《剑指offer》第六十三题(股票的最大利润)
// 面试题63:股票的最大利润 // 题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖交易该股 // 票可能获得的利润是多少?例如一只股票在某些时间节点的价格为{9, 11, 8, 5, // 7, 12, 16, 14}.如果我们能在价格为5的时候买入并在价格为16时卖出,则能 // 收获最大的利润11. #include <iostream> //如果从头到尾遍历所有的数对,时间复杂度O(n^2),显然不够好 //若固定一个值,直接找前面的最小值,这样更好 int MaxD…
【Offer】[63] 【股票的最大利润】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 例如,一只股票在某些时间节点的价格为{9, 11,8,5,7,12,16,14}.如果我们能在价格为5的时候买入并在价格为16时卖出,则能收获最大的利润11. [牛客网刷题地址]无 思路分析 我们先定义函数diff(i)为当卖出价为数组中第i个数字时可能获得的最大利润.显然,在卖出价固定时,买入价越低获得的利润越大.也就是说,如果在扫描到数…
剑指Offer 63. 数据流中的中位数(其他)
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值.我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数. 题目地址 https://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1?tpId=13&tqId=11216&rp=3&…
[剑指Offer] 63.数据流中的中位数
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值. class Solution { public: vector<int> vec; void Insert(int num) { vec.push_back(num); } double GetMedian() { sort(vec.begin(),vec.end()); int size = ve…
剑指offer二刷(精刷)
剑指 Offer 03. 数组中重复的数字 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次.请找出数组中任意一个重复的数字. Input: {2, 3, 1, 0, 2, 5} Output: 2 解题思路 要求时间复杂度 O(N),空间复杂度 O(1).因此不能使用排序的方法,也不能使用额外的标记数组. 对于这种数组元素在 [0, n-1] 范围内的问题,可以将值为 i 的元素调整到第…
LeetCode:“剑指 Offer”
LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页:贤余超 剑指 Offer 03. 数组中重复的数字 // 方法1: // hash表来做:空间换时间的思想 // 时间复杂度 O(n) // 空间复杂度 O(n) public int findRepeatNumber(int[] nums) { Set<Integer> hashset = n…