我的漫漫程序之旅

          專注于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筆試與面試

          主站蜘蛛池模板: 那曲县| 印江| 海原县| 庆阳市| 府谷县| 鄂托克旗| 博野县| 荔波县| 北宁市| 博罗县| 西吉县| 新民市| 新建县| 龙川县| 杂多县| 永州市| 龙山县| 桂林市| 云林县| 玉屏| 肃宁县| 哈巴河县| 宝鸡市| 乐业县| 江源县| 宜兰市| 格尔木市| 宣城市| 澜沧| 宁德市| 景宁| 四平市| 宁阳县| 昌吉市| 侯马市| 南乐县| 万源市| 彰化市| 宣化县| 新源县| 嘉荫县|