隨筆-126  評論-247  文章-5  trackbacks-0

            
          給出一個無序數組, 找出連續的任意多個元素, 使得其和加起來是最大的, 要求時間復雜度為 O(N)

              
          //In Java
          public static int maxSubSum(int[] array){
              
          int sum = 0, max = array[0];
              
          for(int i = 0; i < array.length; i++){
                  sum 
          += array[i];
                  
          if(sum > max)
                      max 
          = sum;
                  
          if(sum < 0)  //如果 sum < 0, 將 sum 重新置 0
                      sum = 0;
              }
              
          return max;
          }
              

           

             
          //In C++
          #include <stdio.h>
          #include 
          <string.h>
          #include 
          <stdlib.h>
          #define length(array) sizeof(array) / sizeof(array[0])

          int maxSubSum(int *array, int len){
              
          int sum = 0, max = array[0];
              
          for(int i = 0; i < len; i++){
                  sum 
          += array[i];
                  
          if(sum > max)
                      max 
          = sum;
                  
          if(sum < 0)
                      sum 
          = 0;
              }
              
          return max;
          }
             


           



            
          posted on 2013-02-07 09:22 fancydeepin 閱讀(2495) 評論(3)  編輯  收藏

          評論:
          # re: 最大連續子串的和[未登錄] 2013-02-19 13:43 |
          有問題
          如 8 -1 8?  回復  更多評論
            
          # re: 最大連續子串的和[未登錄] 2013-02-19 13:44 |
          @幻
          不好意思,看錯了,激動了  回復  更多評論
            
          # re: 最大連續子串的和 2013-04-10 09:35 | dohkoos
          if (sum < 0)應該是if (sum < max)
            回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 普陀区| 区。| 丹东市| 宜阳县| 光泽县| 奉节县| 太仓市| 成武县| 普定县| 犍为县| 斗六市| 屯门区| 仙桃市| 东平县| 肥城市| 杨浦区| 阳曲县| 中宁县| 台湾省| 双桥区| 胶南市| 博野县| 仲巴县| 长丰县| 河北区| 西平县| 林甸县| 达孜县| 阿巴嘎旗| 昂仁县| 绥中县| 资中县| 旬阳县| 武安市| 土默特右旗| 曲阳县| 河北省| 吴桥县| 栾城县| 塔城市| 昌吉市|