例:
输入: [4,5,3,5,6,8,6,3,2,5]
输出:第3天买入 第6天卖出 收益5;
输入:[7, 7, 8, 3, 6, 2, 3, 3];
输出:第4天买入 第5天卖出 收益3;
arr= [4,5,3,5,6,8,6,3,2,5],num=0,a,b;
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[j]-arr[i]>num){
num=arr[j]-arr[i]
a=i;
b=j;
}
}
}
console.log('第'+(a+1)+'天买入','第'+(b+1)+'天卖出','收益'+num)
//大概逻辑是这样的,写的比较渣
思路就是先设一个最大变量max,然后利用冒泡排序求差值,差值大于max,重新赋值max,并记录2个数的下标。最后的max就是收益,2个数分别就是买入和卖出的那天
function mf(arr) {
var str = "";
var m = 0;
var e = 0;
for (var i = 1; i < arr.length; i++) {
var t = arr[i] - arr[m];
if (t>e) {
e = t;
str = "第"+(m+1)+"天买入 第"+(i+1)+"天卖出 收益"+e;
}
if (t<0)
m = i;
}
return str;
}
console.log(mf([4,5,3,5,6,8,6,3,2,5]));
console.log(mf([7,7,8,3,6,2,3,3]));