我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          一道關于數組的面試題

          給定一個數組,當中有正負數,求當中的一段“子數組”(即任意長度,連續的數字),使得這個“子數組”的和是所有“子數組”和中最大的,
          如給定的數組為12, -8, 5, 66, -21, 0 ,35, -44,7,則最大的和的子數組為{12, -8, 5, 66, -21, 0 ,35},最大的和為89.

          package org.eline.core.utils;

          /**
           * 
           * 
          @author supercrsky
           * 
           
          */

          public class Test
          {
              
          public void findMax(int s[])
              
          {
                  
          int add[] = new int[100];
                  
          int k = s[0];
                  
          int b = 0;// 標記開始位置
                  int p = 0;// 標記結束位置
                  int i;
                  
          int j;

                  
          for (i = 0; i <= s.length; i++)// 整體循環
                  {
                      
          for (j = i; j < s.length; j++)// 子數組循環
                      {
                          add[i] 
          += s[j];
                          
          if (add[i] > k)
                          
          {
                              k 
          = add[i];
                              b 
          = i;// 獲得開始位置下標
                              p = j;// 獲得結束位置下標
                          }

                      }

                  }

                  System.out.print(
          "max sub array:");
                  System.out.print(
          "{");
                  
          for (i = b; i <= p; i++)
                  
          {
                      System.out.print(s[i] 
          + " ");
                  }

                  System.out.println(
          "}");
                  System.out.print(
          "sum:" + k);
              }


              
          public static void main(String[] args)
              
          {
                  
          int s[] =
                  
          101-100100100999-222 - 100100 };
                  Test test 
          = new Test();
                  test.findMax(s);
              }

          }



          posted on 2008-05-07 17:33 々上善若水々 閱讀(1756) 評論(0)  編輯  收藏 所屬分類: Java筆試與面試

          主站蜘蛛池模板: 舞钢市| 香河县| 呼伦贝尔市| 年辖:市辖区| 静海县| 三台县| 大同市| 怀化市| 伊宁县| 泰宁县| 仙桃市| 武胜县| 安多县| 林周县| 绵竹市| 马鞍山市| 金塔县| 沙河市| 灵川县| 凤山县| 永新县| 阿瓦提县| 天柱县| 临海市| 孟村| 南丹县| 广宗县| 鹿邑县| 宁陕县| 常熟市| 泽库县| 新巴尔虎左旗| 合阳县| 鸡泽县| 静安区| 濮阳市| 方城县| 龙岩市| 武宁县| 靖江市| 杭锦后旗|