原创 劍指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 * @