LintCode-11.二叉查找樹中搜索區(qū)間

題目

描述

實現(xiàn)一個帶有取最小值min方法的棧嗦锐,min方法將返回當(dāng)前棧中的最小值顶猜。

你實現(xiàn)的棧將支持pushpopmin 操作粤剧,所有操作要求都在O(1)時間內(nèi)完成歇竟。

樣例

如下操作:push(1)pop()抵恋,push(2)焕议,push(3)min()弧关, push(1)盅安,min() 返回 1唤锉,2,1

解答

思路

建立兩個棧别瞭,一個保持頂端是最小的數(shù)窿祥,另一個保存剩下的數(shù)據(jù)。

代碼

/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 */
public class Solution {
    /**
     * @param root: The root of the binary search tree.
     * @param k1 and k2: range k1 to k2.
     * @return: Return all keys that k1<=key<=k2 in ascending order.
     */
    ArrayList<Integer> result = new ArrayList<Integer>();
    public ArrayList<Integer> searchRange(TreeNode root, int k1, int k2) {
        // write your code here
        if(root == null) return result;
        if(root.val >= k1 && root.val <= k2){
            result.add(root.val);
            searchRange(root.left, k1, k2);
            searchRange(root.right, k1, k2);
        }
        else if(root.val < k1){
            searchRange(root.right, k1, k2);
        }
        else if(root.val > k2){
            searchRange(root.left, k1, k2);
        }
        Collections.sort(result);
        return result;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝙寨,一起剝皮案震驚了整個濱河市晒衩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌籽慢,老刑警劉巖浸遗,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猫胁,死亡現(xiàn)場離奇詭異箱亿,居然都是意外死亡,警方通過查閱死者的電腦和手機弃秆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門届惋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人菠赚,你說我怎么就攤上這事脑豹。” “怎么了衡查?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵瘩欺,是天一觀的道長。 經(jīng)常有香客問我拌牲,道長俱饿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任塌忽,我火速辦了婚禮拍埠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘土居。我一直安慰自己枣购,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布擦耀。 她就那樣靜靜地躺著棉圈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眷蜓。 梳的紋絲不亂的頭發(fā)上迄损,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音账磺,去河邊找鬼芹敌。 笑死痊远,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氏捞。 我是一名探鬼主播碧聪,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼液茎!你這毒婦竟也來了逞姿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤捆等,失蹤者是張志新(化名)和其女友劉穎滞造,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栋烤,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡谒养,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了明郭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片买窟。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖薯定,靈堂內(nèi)的尸體忽然破棺而出始绍,到底是詐尸還是另有隱情,我是刑警寧澤话侄,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布亏推,位于F島的核電站,受9級特大地震影響年堆,放射性物質(zhì)發(fā)生泄漏吞杭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一嘀韧、第九天 我趴在偏房一處隱蔽的房頂上張望篇亭。 院中可真熱鬧,春花似錦锄贷、人聲如沸译蒂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柔昼。三九已至,卻和暖如春炎辨,著一層夾襖步出監(jiān)牢的瞬間捕透,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乙嘀,地道東北人末购。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像虎谢,于是被迫代替她去往敵國和親盟榴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗婴噩。 張土汪:刷leetcod...
    土汪閱讀 12,744評論 0 33
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,233評論 0 4
  • 一几莽、棧 1.1 棧的實現(xiàn) 棧(Stack)是限制僅在表的一端進行插入和刪除運算的線性表迅办。java沒有棧這樣的數(shù)據(jù)結(jié)...
    yjaal閱讀 1,451評論 0 1
  • Java byte code 的學(xué)習(xí)意義 為啥要學(xué)java bytecode,這就跟你問我已經(jīng)會python了為...
    shanggl閱讀 1,668評論 0 3
  • 136.泛型 泛型代碼讓你可以寫出靈活,可重用的函數(shù)和類型,它們可以使用任何類型,受你定義的需求的約束章蚣。你可以寫出...
    無灃閱讀 1,466評論 0 4