原创 劍指Offer學習-面試題31:棧的壓入,彈出序列

/** * 棧的壓入,彈出序列 * 設置一個輔助棧,依次把彈出序列壓入輔助棧,如果輔助棧頂元素和原始棧棧頂元素相等,則都彈出 * 最後棧爲空就說明彈出序列是棧的壓入序列 * *

原创 劍指Offer學習-面試題34:二叉樹中和爲某一值的路徑

List<Integer> list = new ArrayList<>(); /** * 二叉樹中和爲某一值的路徑 * <p> * 前序遍歷二叉樹,list保存節點,遇到沒有孩子節點並且

原创 劍指Offer學習-面試題21:調整數值順序使奇數位於偶數前面

/** * 調整數值順序使奇數位於偶數前面 * * @param arr */ public void reorderOddEven(int[] arr) { if

原创 劍指Offer學習-面試題19:正則表達式匹配

/** * 正則表達式匹配 * <p> * .表示任意一個字符 * *表示它前面的字符可以出現任意次 * * @param s * @param patter

原创 劍指Offer學習-面試題18:刪除鏈表的節點

/** * 刪除鏈表的節點 * 給定單項鍊表的頭指針和一個節點指針,定義一個函數在O(1)的時間內刪除該節點 * * @param node * @return */

原创 劍指Offer學習-面試題35:複雜鏈表的複製

/** * 複雜鏈表的複製 * * @param root * @return */ public ComplexListNode clone(ComplexListNo

原创 劍指Offer學習-面試題44:數字序列中某一位的數字

/** * 數字序列中某一位的數字 * * @param index * @return */ public int digitAtIndex(int index) {

原创 劍指Offer學習-面試題40:最小的k個數

/** * 最小的k個數 * <p> * 利用堆 * * @param arr * @param k * @return */ public

原创 劍指Offer學習-面試題36:二叉搜索樹與雙向鏈表

/** * 二叉搜索樹與雙向鏈表 * * @param root * @return */ public BinaryTreeNode convert(BinaryTr

原创 劍指Offer學習-面試題53:在排序數組中查找數字

/** * 在排序數組中查找數字 * 統計一個數字在排序數組中出現的次數 * * @param arr * @return */ public int getN

原创 劍指Offer學習-面試題39:數組中超過一半的數字

/** * 數組中超過一半的數字 * <p> * 遇到相等的數count加1,不相等就減1,如果存在一個數在數組中佔一半,則遍歷完當前值必定是這個數 * * @param arr

原创 劍指Offer學習-面試題42:連續子數組的最大和

/** * 連續子數組的最大和 * * @param arr * @return */ public int findGreatestSumOfSubArray(int[

原创 劍指Offer學習-面試題51:數組中的逆序對

int res = 0; /** * 數組中的逆序對 * <p> * 歸併排序求逆序對 * * @param arr * @return */

原创 劍指Offer學習-面試題49:醜數

/** * 醜數 * 我們把只包含因子2,3,5的數稱作醜數,從小到大順序求第number個醜數 * <p> * 三指針 * * @param number

原创 劍指Offer學習-面試題56:數組中數字出現的次數

/** * 數組中數字出現的次數 * <p> * 一個整型數組裏除兩個數字之外,其他數字都出現了兩次,請找出這兩個只出現一次的數字 * * @param arr * @