一维数组
package yiweishuzu;
import java.util.Scanner;
/**
* 貪心算法
* @author Lenovo
*
*/
public class shuzu_1 {
private static Scanner scan;
public static void main(String[] args) {
// 確定元素的個數(shù)
System.out.println("輸入數(shù)組元素個數(shù):");
scan = new Scanner(System.in);
int n = scan.nextInt();
// 循環(huán)輸入數(shù)組元素
System.out.println("輸入數(shù)組");
int[] x = new int[n];
for (int i = 0; i < n; i++) {
x[i] = scan.nextInt();
}
// 最大子數(shù)組的起始位置(即當前最大子數(shù)組)
int max = Integer.MIN_VALUE;// 設置成最小整數(shù)
int sum = 0;// 記錄數(shù)組個元素相加的和
for (int i = 0,j = 1; i < n; i++) {// 將個元素依次相加并進行判斷
System.out.println("當前執(zhí)行第" + j + "步");
if (sum <= 0) {// 當遇到小于0的數(shù)時就停止相加
sum = x[i];
System.out.println("此時執(zhí)行到的元素是" + x[i]);
System.out.println("當前sum值為" + sum);
} else {
sum = sum + x[i];
System.out.println("此時執(zhí)行到的元素是" + x[i]);
System.out.println("當前sum值為" + sum);
}
if (sum >= max) {// 如果求得總和大于之前的最大值的話,就將sum賦值給max
max = sum;
System.out.println("此時最大值符合條件,當前最大值" + max + "
");
j++;
continue;
}
else{
System.out.println("此時不符合要求,sum清0" + "
");
j++;
continue;
}
// if (sum < 0) {// 如果當前求得的數(shù)組的和為負數(shù),就把他清除為0(輸出的結果就是非負整數(shù))
// max = 0;
// }
}
// System.out.println("最大子數(shù)組的和為:" + max);
}
}
總結
- 上一篇: TestNG系列(四)TestNG监听器
- 下一篇: 软件架构入门(阮一峰)