zoukankan      html  css  js  c++  java
  • 最大子数组

    package 个人作业;
    
    
    import
    java.util.Scanner;
    
    public class shuzu {
    	private static Scanner scan;
    
    	public static void main(String[] args) {
    		// 确定元素的个数
    		System.out.println("输入数组元素个数:");
    		scan = new Scanner(System.in);
    		int n = scan.nextInt();
    
    		// 循环输入数组元素
    		System.out.println("输入数组");
    		int[] x = new int[n];
    		for (int i = 0; i < n; i++) {
    			x[i] = scan.nextInt();
    		}
    
    		// 最大子数组的起始位置(即当前最大子数组)
    		int max = Integer.MIN_VALUE;// 设置成最小整数
    		int sum = 0;// 记录数组个元素相加的和
    		for (int i = 0; i < n; i++) {// 将个元素依次相加并进行判断
    			sum += x[i];
    			if (sum > max) {// 如果求得总和大于之前的最大值的话,就将sum赋值给max
    				max = sum;
    			}
    			// if (sum < 0) {// 如果当前求得的数组的和为负数,就把他清除为0(输出的结果就是非负整数)
    			// max = 0;
    			// }
    		}
    		System.out.println("最大子数组的和为:" + max);
    	}
    	
    }
    这是比较简单的一个求最大子数组的方法,我自己写的那个,不满足o(n),这是在网上找到一个贪心算法,这个很简单,在经过同学的帮助下我也慢慢理解了

      

  • 相关阅读:
    jQuery标准的AJAX模板
    maven库
    在 Windows7 上按照 MySQL5.7
    如何保证代码的有效性
    项目负责人的职责
    string integer == equals 转
    走近AbstractQueuedSynchronizer
    STAR
    tesseract-ocr
    Spring @Qualifier l转
  • 原文地址:https://www.cnblogs.com/liuxiaojieqqq/p/10615222.html
Copyright © 2011-2022 走看看