隨筆 - 8, 文章 - 0, 評論 - 6, 引用 - 0
          數據加載中……

          實現一個棧,使其push,pop,min(取得棧中的最小元素)均為O(1)

          實現一個棧,使其push,pop,min(取得棧中的最小元素)均為O(1)

          我的解
          interface IntStack
          {
              
          int pop();
              
          void push(int i);
              
          int get();
          }


          class MinStack
          {
              
          //store all the element
              private IntStack elemStack = new IntStack();
              
              
          //store current and historical smallest element
              private IntStack minStack = new IntStack();
              
              
          public void push(int i)
              
          {
                  elemStack.push(i);
                  
                  
          int currentMin = minStack.get();
                  
          if(i <= currentMin) minStack.push(i);
              }

              
              
          public int pop()
              
          {
                  
          int result = elemStack.pop();
                  
          if(result == minStack.get()) minStack.pop();
                  
          return result;
              }

              
              
          public int getMinElem()
              
          {
                  
          return minStack.get();
              }

          }

          posted on 2007-07-18 20:57 Job Hu 閱讀(902) 評論(0)  編輯  收藏 所屬分類: 算法與數據結構

          主站蜘蛛池模板: 岚皋县| 台中市| 怀宁县| 安西县| 邻水| 朝阳市| 拉萨市| 阿拉善右旗| 白玉县| 平度市| 安福县| 宜丰县| 常山县| 怀仁县| 通辽市| 教育| 玉门市| 墨竹工卡县| 民勤县| 西林县| 金溪县| 东城区| 耒阳市| 金坛市| 略阳县| 肥东县| 湛江市| 上杭县| 宜兰县| 磐石市| 五华县| 手游| 台前县| 曲松县| 三都| 遵化市| 逊克县| 芜湖市| 洪洞县| 忻州市| 新和县|