首页 > 试题广场 >

比特币最佳买卖时机

[编程题]比特币最佳买卖时机
  • 热度指数:10778 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个正整数数组,它的第 i 个元素是比特币第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一次),设计一个算法来计算你所能获取的最大利润。

注意你不能在买入比特币前卖出。


输入描述:
正整数数组,为以空格分隔的n个正整数


输出描述:
最大利润
示例1

输入

7 1 5 3 6 4

输出

5
头像 牛客题解官
发表于 2020-06-04 15:46:27
精华题解 题目难度:二星 考察点:贪心 方法1:暴力 1.分析: 我们直接按照这个题的题意进行枚举,即假设在第i(0<=i<n)天买入,在第j(i<j<n)天卖出,那么得到的结果显然就是a[j]-a[i],我们将这所有的a[j]-a[i]取最大值就是我们要的答案。&n 展开全文
头像 pandaRR
发表于 2019-08-08 15:28:31
思路 最暴力的做法是无论输入如何,双层循环i,j,选出max_profit; 参考大佬的代码,只要写一层循环i,还有一个变量index =0,只有当price_vec[j]>price_vec[index]时才更新index = i;如输入为1 9 45 23 89 34时,index=0不需 展开全文
头像 白伟仝
发表于 2020-04-29 18:32:00
import java.util.*; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] s = 展开全文
头像 louis_ncu
发表于 2020-04-25 10:52:30
//2019招银信用中心,比特币最佳买卖时机 //暴力解法 //时间复杂度: O(n^2) //空间复杂度: O(n) void bitCoint() { string ss; getline(cin, ss); ist 展开全文
头像 three_0430
发表于 2024-03-03 20:26:53
#include <iostream> #include<vector> #include<math.h> using namespace std; int maxProfit(vector<int>& v){ int minn = 展开全文
头像 three_0430
发表于 2024-03-03 20:54:59
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new S 展开全文
头像 codewind
发表于 2020-05-26 15:03:17
//注意:最多只能一笔交易 import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); 展开全文
头像 laglangyue
发表于 2020-05-31 21:04:05
双循环暴力求解,居然没有ttl dp的思路,dp表示当前最大利润(有点牵强,dp[i]与dp[i-1]几乎没有关系):dp[i]=input[i]-Math.min(0-i),等于0时表示,买入当天即卖出。最后max=max(dp),本题直接用ints数组作为dp数组,不需要额外开辟空间了。impo 展开全文