劍指offer刷題 190401

2021-09-14 07:01:57 字數 1071 閱讀 6729

定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式(時間複雜度應為o(1))

既要實現複雜度為o(1)的min功能,也要完成stack特有的push,pop功能。所以乙個棧不可以同時實現,需要借助乙個輔助棧來完成。

public class minstack 

public void pop()

public int top()

public int min()

}

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這兩個序列的長度是相等的)

使用stack按照pusha的順序入棧,模擬popa的順序出棧

當s的棧頂元素等於popa中指向的第乙個元素時,s.pop,indexpop++關鍵點在於:不需要使用兩個迴圈就能實現,判斷popa順序解除安裝入棧的push迴圈中。如果pusha中所有資料都已經入棧,而s中經過出棧後還有剩餘說明pusha和popa不匹配,不存在popa

public boolean ispoporder(int  pusha,int  popa) 

private void findpath(treenode root,int target,arraylistlist)

return ;

}arraylistlist2 = new arraylist(list);//必須寫在兩個子遞迴之前

if(root.left!=null)

findpath(root.left,target-root.val,list);

if(root.right!=null)

findpath(root.right,target-root.val,list2);

}

大佬精簡**

public class solution 

}

劍指offer刷題

面試題6 從尾到頭列印鍊錶 struct listnode class solution reverse res.begin res.end return res 替換空格class solution int newnumstr numstr numspace 2 if newnumstr leng...

劍指offer刷題

原題鏈結 動態規劃 class solution dp for int i 1 i len1 i else if p j 1 else return dp len1 len2 原題鏈結 數學推導 找規律 class solution else if n 3 2 return ipow 3 numso...

劍指offer刷題 2

思路 如果從前往後進行遍歷,那麼每次找到乙個空格,則需要新增兩個位元組來進行替換,我們採用先對字串進行遍歷,查詢字串中的空格的個數,然後對新的字串進行長度的計算,然後從後往前進行替換,每遇到乙個空字元,然後進行替換。class solution int oldnumber 0 int numbers...