题解 | #买卖股票的最好时机(一)#
买卖股票的最好时机(一)
http://www.nowcoder.com/practice/351b87e53d0d44928f4de9b6217d36bb
import java.util.*;
public class Main {
public static void main(String[] args) {
// 以下代码用户获取输入数据
Scanner scan = new Scanner(System.in);
String nStr = scan.nextLine(); // 输入一个正整数 n
int n = Integer.valueOf(nStr); // 将 String 类型转换为 int 类型
String numsStr = scan.nextLine(); // 输入 n 个正整数
String[] numsStrList = numsStr.split(" ");
int[] nums = new
int[numsStrList.length]; // 定义一个整型变量,用于存放这 n 个正整数
for (int i = 0; i < nums.length; i++) {
nums[i] = Integer.valueOf(numsStrList[i]);
}
// 以下代码是 买卖股票的最好时机(一) 的具体实现
// 一些特殊情况的处理
if (1 == nums.length) {
System.out.println(0);
return;
}
int rs = nums[1] - nums[0];
int now = nums[1] - nums[0];
int pre = nums[1] - nums[0];
for (int i = 1; i < nums.length - 1; i++) {
if (pre <= 0) {
now = nums[i + 1] - nums[i];
} else {
now = pre + nums[i + 1] - nums[i];
}
pre = now;
rs = Math.max(rs, now);
}
System.out.println(rs > 0 ? rs : 0);
}
}