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

  • 相关阅读:
    MySQL主从复制集群添加slave节点
    GTID主从 与 传统主从复制
    20201207总结
    202011051 每周例行报告
    202011121 每周例行报告
    202010081 每周例行报告
    202011261 每周例行报告
    202010153 每周例行报告
    202010291 每周例行报告
    202011201 每周例行报告
  • 原文地址:https://www.cnblogs.com/YXSZ/p/10505538.html
Copyright © 2011-2022 走看看