zoukankan      html  css  js  c++  java
  • 返回一个整数数组中最大子数组的和

      {25,47,-78,-23,12,-45,47,13,85,-100,120}

      在以上这串数组中,如何划分子数组,可以使其中一个子数组的内部和达到最大?

      {25}是它的一个子数组,{25,47}也是它的一个子数组,但25+47>25,{25,47,-78}依旧是子数组,但很明显,这个数组的和依旧小于{25,47}这个数组的和。所以依次类推,我们可以将所有的子数组都列出来,然后将结果放到一个数组中最后进行比较即可。

      但我的思路是这样的:求最大子数组的和,那么我的眼中只有正数——凡是存在负数的子数组一律抛弃,那么就可以这样:如果第一个数是正数,将它赋给一个变量,然后判断第二个数,正数则与参数相加再赋给变量;负数则跳过,将变量放到数组中,然后变量重新置为0。另一种可能,第一个数是负数,那么直接跳过,判断第二个数,此时就进入了循环。

      但经过我的思考,我发现我的程序不太好,第一,程序的“弯弯绕”太多了,这样会导致一个月以后,我自己都不一定能读懂我写的是什么。

      第二,程序的范围太窄了,没错,本程序中解决的问题是返回一个整数数组中最大子数组的和,但如果别人问的是返回一个整数数组中最小子数组的和呢?再问列出所有整数数组的子数组的和呢?

      程序地址

      https://github.com/Evilleon/The-sum-of-the-largest-subarrays.git

  • 相关阅读:
    摘:复习STL
    C#:在其它dll中调用此文件中的资源
    摘录:CSharp调用C动态链接库详解
    C/C++基本数据类型
    mysqlreport指南
    mysqlreport工具
    收藏一个简洁的PHP可逆加密函数
    解决MySQL查询数据不一致诟病
    Ubuntu下搭建C/C++开发环境
    mysql:主键和索引的区别
  • 原文地址:https://www.cnblogs.com/YXSZ/p/10505538.html
Copyright © 2011-2022 走看看