1.匯總區間(簡單)
判斷連續的范圍,記錄每個區間的首尾,存進list。
2.合并區間(中等)
先按照左端點排序,然后判斷右端點是否和下個區間的左端點重合,重疊進行合并。
3.插入區間(中等)
判斷插入區間和插入位置左右區間的關系,不🍌則直接插入,🍌則合并。
4.用最少數量的箭引爆氣球(中等)
把氣球所在區間以左端點進行排序,然后依次判斷左邊界是否大于當前組的右邊界,不大于就對右邊界進行維護,大于則箭數+1;
5.有效的括號(簡單)
搞個棧成對就出,不成對就入棧,最后根據棧里是否有元素判斷。
6.簡化路徑(中等)
用list記錄“,.? ..”,用Deque模擬棧。使用subString("/")分割字符串,只剩下文件名和“.”。遍歷判斷,不是list中的那幾個,就是文件名,文件名入棧,如果是..代表返回上一層,則出棧頂。最后用String.join("/",deque)拼接。
7.最小棧(中等)
要常數時間找到最小,用輔助棧即可。每次入棧時,通過對比得到的最小值入輔助棧即可,每次出棧只需同步出輔助棧。
8.逆波蘭表達式求值(中等)
是數字則存入棧中,是運算符則把棧釘兩個數字計算后放回去。