/**
* 把數組排成最小的數
*
* @param arr
* @return
*/
public String printMinNumber(String[] arr) {
if (null == arr || 0 == arr.length) return "";
Arrays.sort(arr, (a, b) -> (a + b).compareTo(b + a));
return String.join("", arr);
}
劍指Offer學習-面試題45:把數組排成最小的數
劍指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 */