个人作业1----数组
题型一:普通的整型数组
目标:
返回一个整型数组中最大子数组的和。
题目要求:
1.输入一个整型数组,数组中有正数也有负数。
2.数组中连续的一个或多个整数组成一个子数组,数组都有一个和。
3.求所有子数组和的最大值。要求时间复杂度为O(n)。
问题分析:
1.输入
2.数组:整型 有正 有负
3.子数组
4.子数组和
5.所有 子数组和 其中 的最大值
6.时间复杂度为O(n)
源代码:
import java.util.*; public class Array1 { public static void main(String args[]) { int []arr1; arr1=new int [100]; int n; int sum; Scanner sc=new Scanner(System.in); System.out.println("请输入您想要输入的个数:"); n=sc.nextInt(); for(int i=0;i<n;i++) { arr1[i]=sc.nextInt(); } for(int i=1;i<n;i++) { if(arr1[i-1]+arr1[i]>arr1[i]) { arr1[i]=arr1[i-1]+arr1[i]; } } sum=-1000000; for(int i=0;i<n;i++) { if(sum<arr1[i]) { sum=arr1[i]; } } System.out.print("整数数组所有最大子数组的和为:"); System.out.println(sum); } }