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

    要求:

        给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。要求时间复杂度为O(n)。

    思路:

        这是一道考察算法的题,对比每一个子数组的和,还有对时间复杂度的要求。

    过程与结果:

        总的来讲花费的时间挺多的,可能因为,额,好吧,不是可能,是就是本来基础很差,所以实际动手的时候不太会,钻研了半天,最后还是从网上查找了查找解决方案,但是最后还是没能解决时间复杂度O(n)的问题,只做到了时间复杂度O(n²)。

    package com;

    public class zihe {
    public static int sumN2(int [] array){
    int sum=0,maxSum=Integer.MIN_VALUE;
    int n=array.length;
    int count=0;
    for(int i=0;i<n;i++){
    sum=0;
    for(int j=i;j<n;j++){
    sum+=array[j];
    if(sum>maxSum){
    maxSum=sum;
    }
    count++;
    } }

    System.out.println("length="+n+"||count="+count);
    return maxSum;
    }


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int [] array={-5,-2,-3,-5,-3,-2};
    int sum=zihe.sumN2(array);
    System.out.println("最大子序列和="+sum);

    }

    }

  • 相关阅读:
    XidianOJ 1073 Nunchakus
    XidianOJ 1024 2的幂次表示
    XidianOJ 1072 National Disaster
    XidianOJ 1093 一元三次方程
    中国剩余定理
    bzoj2818(欧拉函数递推)
    poj2311(博弈论,sg函数)
    contesthunter#46-A(分块)
    Tree,点分治
    poj3580(splay 毒瘤题)
  • 原文地址:https://www.cnblogs.com/baimafeima/p/10803448.html
Copyright © 2011-2022 走看看