LeetCode 53 最大求子序和

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xfjjs_net/article/details/84844188

我自己写的就两种暴力法。

暴力法1 时间复试杂O(n3)

	public static int maxSubArray(int[] nums) {
		int len = nums.length;
		if (len == 0) {
			return 0;
		}
		int max = Integer.MIN_VALUE;
		int sum;
		for (int i = 0; i < len; i++) {
			for (int j = i; j < len; j++) {
				sum = 0;
				for (int k = i; k <=j; k++) {
					sum += nums[k];
				}
				if (sum > max) {
					max = sum;
				}
			}
		}
		return max;
	}

改进的暴力法 时间复杂度O(n2)

	    public static int maxSubArray2(int[] nums) {
	    	int max = Integer.MIN_VALUE;
	        int sum;
	        for (int i = 0; i < nums.length; i++) {// 子序列左端点
	            sum = 0;
	            for (int j = i; j < nums.length; j++) {// 子序列右端点
	                sum += nums[j];// 这里就相当于每次根据前一次的序列来计算新的序列
	                if (sum > max)
	                    max = sum;
	            }
	        }
	        return max;
	    }

猜你喜欢

转载自blog.csdn.net/xfjjs_net/article/details/84844188