• 返回一个整数数组中最大子数组的和


      {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

  • 相关阅读:
    php header 跳转 ie问题
    Filter过滤不了Action的问题
    DB2中sql语句占位符问题
    LL(1)文法
    算法分析实验报告词法分析器
    大数据概述
    2016.9.30 编译原理词法分析器
    131有确定性的有穷自动机
    Python基础综合练习
    组合数据类型练习
  • 原文地址:https://www.cnblogs.com/YXSZ/p/10505538.html
Copyright © 2020-2023  润新知