原创 劍指Offer學習-面試題41:數據流中的中位數

public static void main(String[] args) { while (true) { Scanner input = new Scanner(System.in)

原创 劍指Offer學習-面試題48:最長不含重複字符的子字符串

/** * 最長不含重複字符的子字符串 * * @param str * @return */ public int longestSubstringWithoutDup

原创 劍指Offer學習-面試題52:兩個鏈表的第一個公共節點

/** * 兩個鏈表的第一個公共節點 * <p> * 先計算兩個鏈表的長度,讓長的鏈表先走兩個鏈表的差值,然後一起走,比較相等 * * @param l1 * @par

原创 劍指Offer學習-面試題57:和爲s的數字

/** * 和爲s的數字 * <p> * 設置兩個指針,左指針指向數組的開頭,右指針指向結尾,由於數組是遞增的 * 相加如果大於s,則右指針向左移動, * 小於s,則左指針向右移

原创 劍指Offer學習-面試題38:字符串的排列

/** * 字符串的排列 * * @param s */ public void permutation(String s) { char[] arr = s.to

原创 劍指Offer學習-面試題47:禮物的最大價值

/** * 禮物的最大價值 * <p> * f(i,j)=max(f(i-1,j),f(i,j-1))+arr[i][j] * * @param arr * @retu

原创 劍指Offer學習-面試題55:二叉樹的深度

/** * 二叉樹的深度 * * @param root * @return */ public int treeDepth(TreeNode root) {

原创 劍指Offer學習-面試題50:第一次只出現一次的字符

/** * 第一次只出現一次的字符 * * @param str * @return */ public char firstNotRepeating(String st

原创 劍指Offer學習-面試題54:二叉搜索樹的第k大節點

/** * 二叉搜索樹的第k大節點 * * @param root * @return */ public TreeNode kthNode(TreeNode root,

原创 劍指Offer學習-面試題37:序列化與反序列化二叉樹

/** * 反序列化二叉樹 * * @param s */ public TreeNode deSerialize(String s) { if (s.charAt

原创 劍指Offer學習-面試題46:把數字翻譯成字符串

/** * 把數字翻譯成字符串,計算有多少種翻譯方法 * * @param n * @return */ public int getTranslationCount(i

原创 劍指Offer學習-面試題45:把數組排成最小的數

/** * 把數組排成最小的數 * * @param arr * @return */ public String printMinNumber(String[] arr

原创 劍指Offer學習-面試題23:鏈表中環的入口節點

/** * 鏈表中環的入口節點 * 1->2->3->4->5->6->3 * 設置快慢兩個指針,從頭節點開始出發,快指針每次走兩步,慢指針每次走一步,直到相遇或者快指針到空節點退出。 *

原创 劍指Offer學習-面試題30:包含min函數的棧

/** * 包含min函數的棧 */ class MinStack { Stack<Integer> data_stack = null; Stack<Integer

原创 劍指Offer學習-面試題20:表示數值的字符串

/** * 表示數值的字符串 * <p> * 表示數值的字符串遵循A[.[B]][e|EC]或者.B[e|EC] * A爲數值的整數部分 * B爲數值的小數部分 * C