我的漫漫程序之旅

          專注于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 々上善若水々 閱讀(1764) 評論(0)  編輯  收藏 所屬分類: Java筆試與面試

          主站蜘蛛池模板: 随州市| 金华市| 忻州市| 安达市| 宁波市| 益阳市| 金平| 新沂市| 平原县| 泗阳县| 志丹县| 铅山县| 莆田市| 乌拉特前旗| 阿合奇县| 中西区| 上犹县| 东安县| 东城区| 万年县| 佛山市| 石渠县| 泗水县| 灌阳县| 得荣县| 渭源县| 青铜峡市| 多伦县| 宾阳县| 金堂县| 驻马店市| 宁津县| 宁安市| 运城市| 景谷| 江口县| 鹤岗市| 田林县| 十堰市| 沿河| 莱西市|