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

    题目描述

    HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)
     
     1 public class Solution {
     2     public int FindGreatestSumOfSubArray(int[] a) {
     3         int sum =a[0],max=a[0] ;
     4         for(int i=1;i<a.length;i++){
     5             if(sum<=0)
     6                 sum=a[i];     
     7             else
     8                 sum+=a[i];           
     9             if(sum>max)max=sum;
    10          }
    11          return max;
    12     }
    13 }

    20180308

     动态规划  
     1 # -*- coding:utf-8 -*-
     2 class Solution:
     3 
     4     def FindGreatestSumOfSubArray(self, a):
     5         # write code here
     6         s = [0] * (len(a))
     7         s[0] = a[0]
     8         for i in range(1,len(a)):
     9             if s[i-1]>0:
    10               s[i] = s[i-1]+a[i]
    11             else:
    12               s[i] = a[i]
    13         return  max(s)

    c++:20180801

     1 class Solution {
     2 public:
     3     int FindGreatestSumOfSubArray(vector<int> array) {
     4         int sum =array[0],max = array[0];
     5         for(int i = 1;i<array.size();i++){
     6             if(sum<=0){
     7                 sum = array[i];
     8             }
     9             else{
    10                 sum +=array[i];
    11             }
    12             if(sum>max) max = sum;
    13         }
    14         return max;
    15     }
    16 };
  • 相关阅读:
    FIR滤波器相关解释
    FIR数字信号滤波器
    图像中的插值
    对DDS的深度认识
    嵌入式媒体处理(EMP)中的编码和解码
    FPGA噪声干扰
    视频压缩概述
    ALTERA DDRII IP核使用
    MyEclipse的使用
    Java开发API文档资源
  • 原文地址:https://www.cnblogs.com/zle1992/p/8035604.html
Copyright © 2011-2022 走看看