posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          支持O(1)時(shí)間push pop min方法的棧

          Posted on 2007-10-29 21:30 ZelluX 閱讀(771) 評(píng)論(2)  編輯  收藏 所屬分類: Algorithm

          算法課的習(xí)題
          題目很簡(jiǎn)單,但是代碼很漂亮

          [zz]

          template <typename T>
          class min_stack {
          public:
            
          void push(const T& v) {
              s.push(make_pair(v, empty()
          ||v<s.top().second ? v : s.top().second));
            }


            
          void pop() { s.pop(); }

            
          const T& top() return s.top().first; }

            
          const T& min() return s.top().second; }

            
          bool empty() return s.empty(); }

          private:
            std::stack
          <std::pair<T, T> > s;
          }
          ;

          評(píng)論

          # re: 支持O(1)時(shí)間push pop min方法的棧  回復(fù)  更多評(píng)論   

          2007-11-17 14:09 by Lee.MaRS
          這個(gè)pair用得太難看了...

          # re: 支持O(1)時(shí)間push pop min方法的棧  回復(fù)  更多評(píng)論   

          2007-11-20 00:43 by ZelluX
          @Lee.MaRS
          囧 為什么老被你bs @,@
          主站蜘蛛池模板: 县级市| 乐东| 客服| 阿图什市| 荥阳市| 巴楚县| 隆昌县| 西平县| 蓬溪县| 双江| 阳曲县| 怀仁县| 海伦市| 建平县| 沙洋县| 江北区| 福鼎市| 饶河县| 达尔| 兴文县| 永泰县| 阿图什市| 班玛县| 婺源县| 望都县| 蕲春县| 吐鲁番市| 尼木县| 庆安县| 清新县| 宁晋县| 宁都县| 项城市| 民乐县| 蛟河市| 贵溪市| 泗水县| 大冶市| 寿光市| 胶州市| 平阳县|