求数组中连续子元素的最大值
方法一:利用动态规划的思想。
public class Test2 {
public static void main(String[] args) {
int[] m ={3, -5, 7, 9, -1, 4, -40, 12, -2, 13, 2, -13, 10};
int currentSum = 0;
int maxSum = 0;
for (int i = 0; i < m.length; i++) {
currentSum += m[i];
if (currentSum > maxSum) {
maxSum = currentSum;
}
if (currentSum < 0) {
currentSum = 0;
}
}
System.out.println(maxSum);
}
}
方法二:将一个数组利用负数划分为几部分,然后分别比较这几部分的值
import java.util.Arrays;
public class Work2 {
// 获得一个数组中最大值的下标
public static int Selecete(int[] m) {
int max = 0;
for (int i = 0; i < m.length; i++) {
if (m[max] < m[i]) {
max = i;
}
}
return max;
}
public static void main(String[] args) {