题解 | #牛群买卖计划III# java
牛群买卖计划III
https://www.nowcoder.com/practice/47ce4c953769468e8b8b727af3cbebf5
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param prices int整型一维数组
* @return int整型
*/
public int maxProfitIII (int[] prices) {
// write code here
int ans = 0;
if (prices.length <= 1) {
return 0;
}
int t = prices[prices.length - 1];
for (int i = prices.length - 2; i >= 0; i--) {
if (prices[i] < t) {
ans += t - prices[i];
} else {
t = prices[i];
}
}
return ans;
}
}
编程语言是Java.
该题考察的知识点:我用的方法使用的算是暴力解法了,利用循环控制流即可。
代码的文字解释:。
- 创建一个整型变量
ans并初始化为 0,用于保存最终的结果。 - 如果传入的数组长度小于等于 1,直接返回 0,因为无法进行交易。
- 创建一个整型变量
t并初始化为数组最后一个元素的值,作为初始比较值。 - 使用循环从数组倒数第二个元素开始遍历到第一个元素。
- 判断当前价格是否小于
t,如果成立则说明可以进行交易,计算差价并累加到ans中。 - 否则,更新
t为当前价格,以便在后续比较中找到更高的卖出价格。 - 循环结束后,返回累加的结果
ans,即最大利润。
顺丰集团工作强度 394人发布