思路:因为买入时间绝对早于卖出时间,所以在数组中买在前,卖在后。
设一个最小值min为买入点,先赋值为arr[0];遍历,假设arr[i]为卖出点,这时判断盈利最大值,如果遇到还有更小的买入点,改变买入点,
如果从新的买入点之后又比之前盈利更高的,改变盈利;
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
//买股票,假设只买卖各一次,要求只用一次遍历,求出盈利最大值
var arr = [1,2,3,4,5,4,3,2,4,5,6,7,5,5,33,7,8,6,5,4,55,3,44,3,4,3];
var min = arr[0];
var profit = -1/0;
for(var i=1;i<arr.length;i++){
if(arr[i]-min>profit){
profit = arr[i] - min;
}
if(arr[i]<min){
min = arr[i];
}
}
console.log(profit);
</script>
</body>
</html>
js算法 -- 买股票
最新推荐文章于 2022-07-06 09:40:44 发布