包含n个整数的数组,返回该数组和为最大的子数组
来源:互联网 发布:南传上座部 知乎 编辑:程序博客网 时间:2024/05/22 06:18
package edu.ccnu;import java.util.Scanner;import java.util.Scanner;/** * 给定一个包含n个整数的数组,返回该数组和为最大的子数组(元素连续) * @author MLee * */public class MaxSumOfSubarray { public static int getMaxSum(int[] arr){ if(arr == null){ return Integer.MIN_VALUE; } if(arr.length == 0){ return Integer.MIN_VALUE; } int[] dp = new int[arr.length]; dp[0] = arr[0]; // dp[i]表示以arr[0:i]为数组的子数组的最大和 int sum = arr[0]; // 反应当前arr[0,i]的正负情况 for(int i = 1; i < arr.length; i++){ if(sum < 0){ // 如果当前sum为负数,则前面的序列就不会再与后面的序列形成子数组了 sum = 0; } sum += arr[i]; dp[i] = Math.max(dp[i-1], sum); } return dp[arr.length-1]; } public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print("> "); int n = sc.nextInt(); int[] arr = new int[n]; System.out.print("> "); for(int i = 0; i < arr.length; i++){ arr[i] = sc.nextInt(); } System.out.println(getMaxSum(arr)); sc.close(); }}
阅读全文
0 0
- 包含n个整数的数组,返回该数组和为最大的子数组
- 给定一个数组,返回最大子数组的累加和并且返回该子数组
- 给定一个整数n,和k,返回包含k个所有所有子数组
- 求一个整数数组的子数组的最大和
- 一个大小为N(0<N<1000)的整数数组, 求该数组的子数组(长度大于2)为等差数列的个数?
- 一个包含正整数和负整数的数组,找出和最大的子串.
- 求数组的子数组的最大和,时间为O(n)
- 求长度为n的数组中,加和最大的子数组
- 输入整形数组,数组里有正数也有负数,数组中一个或连续的多个整数组成数组的子数组,求所有子数组中和的最大值 ,例如输入的数组为{1,-2,3,10,-4,7,2,-5}和最大的子数组为{3,10,
- 数组中最大和的子数组
- 数组中最大和的子数组
- 数组中最大和的子数组
- 子数组的最大和(数组)
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 首尾相连数组的最大子数组和
- 数组中最大和的子数组
- vue 单文件组件 *.vue 组件
- 黄岛区科技服务平台——为企业服务
- Flexbox简介
- 540. Single Element in a Sorted Array(C++)
- GIT 服务器自己搭建问题记录
- 包含n个整数的数组,返回该数组和为最大的子数组
- 阿里云多应用部署记录
- 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法
- LeetCode--Set Matrix Zeroes
- JAVA学习笔记05——windows下搭建集群及session共享问题
- 作业
- (转) Linux下实时查看GPU状态
- 训练fater rcnn时出现path not exist问题
- 关于"XML 文档(2, 2)中有错误:不应有 <xml xmlns=''>"错误