原创 LeetCode945. 使數組唯一的最小增量

945. 使數組唯一的最小增量 題目鏈接 解法一: 對數組 A 升序排序,count 記錄需要操作的次數。 若 A[i]<=A[i-1],count+=A[i-1]+1-A[i],A[i]=A[i-1]+1。 public int

原创 左耳聽風 第四十九周

左耳聽風 第四十九周 每週完成一個ARTS: 每週至少做一個 leetcode 的算法題、閱讀並點評至少一篇英文技術文章、學習至少一個技術技巧、分享一篇有觀點和思考的技術文章。(也就是 Algorithm、Review、Tip、

原创 LeetCode365. 水壺問題

365. 水壺問題 題目鏈接 解法一:BFS 把問題化簡爲:尋找一條從 0 -> z 的路徑,每次可以有 6 種操作。 1、 將 X 倒滿 2、將 Y 倒滿 3、將 X 水倒出 4、將 Y 水倒出 5、將 X 水倒入 Y 中 6、

原创 LeetCode914. 卡牌分組

914. 卡牌分組 解題思路:遍歷 deck 以每個非重複數字爲 key,出現次數爲 value 若所有的 value 存在最大公約數(大於 1),則返回 true,否則返回 false。 public boolean hasGr

原创 LeetCode695. 島嶼的最大面積

LeetCode695. 島嶼的最大面積 給定一個包含了一些 0 和 1的非空二維數組 grid , 一個 島嶼 是由四個方向 (水平或垂直) 的 1 (代表土地) 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍着。 找到給

原创 左耳聽風 第五十週

左耳聽風 第五十週 每週完成一個ARTS: 每週至少做一個 leetcode 的算法題、閱讀並點評至少一篇英文技術文章、學習至少一個技術技巧、分享一篇有觀點和思考的技術文章。(也就是 Algorithm、Review、Tip、S

原创 #LeetCode999. 車的可用捕獲量

999. 車的可用捕獲量 解題思路: 1、設白色車的座標爲 (x,y),白色車的行進路線爲(0,x)、(x,7)、(0,y)、(y,7) 2、count 記錄能捕獲卒的最大數量,最小爲0,最大爲 4 3、當行進路程中遭遇 ‘P’(

原创 LeetCode820. 單詞的壓縮編碼

820. 單詞的壓縮編碼 題目鏈接 解法一: 1、遍歷字符串,建立 set,len 記錄壓縮後的列表長度初始化爲 0 2、將 words 按照字符串長度降序排序,方便過濾後綴子串 3、若所遍歷字符串不在 set 中,且不是 set

原创 LeetCode912. 排序數組

912. 排序數組 題目鏈接 解法一:桶排序 public int[] sortArray(int[] nums) { int[] bucket = new int[100001]; for (in

原创 LeetCode542. 01 矩陣

542. 01 矩陣 題目鏈接 解題思路:動態規劃 當前座標最小距離=上下左右最小距離+1 or 當前座標爲0 public int[][] updateMatrix(int[][] matrix) { int r

原创 LeetCode1162. 地圖分析

1162. 地圖分析 解題思路:動態規劃 1、當前座標距離爲上下左右距離最小值+1 2、兩次距離計算,第一次以上左爲參照,第二次以下右爲參照,如果是陸地標記爲 0 3、maxDistance 記錄最大距離 public int m

原创 LeetCode460. LFU緩存

460. LFU緩存 題目鏈接 解題思路:哈希表+優先隊列 Map<Integer, Node> cache 存儲緩存 key、value,PriorityQueue freQueue 按使用頻率和最近使用時間降序存儲緩存元素,s

原创 什麼是預排序遍歷樹算法(MPTT)

在瞭解什麼是『預排序遍歷樹算法』之前,我們先思考一個問題如何處理『多級分類的子分類查詢』。例如: 要存儲表示層級關係的數據,一種最簡單的方案,存儲當前分類的名稱,以及上一級分類的名稱,通常我們稱這種存儲結構爲『鄰接表』。 數據庫

原创 LeetCode面試題62. 圓圈中最後剩下的數字

面試題62. 圓圈中最後剩下的數字 解法一:暴力枚舉 以 new ArrayList<>(n) 模擬圓圈,每次移除 圓圈中按順序數到的第 m 個數,最後剩餘的那個數就是我們需要找的數。 public int lastRemain

原创 LeetCode面試題 01.07. 旋轉矩陣

面試題 01.07. 旋轉矩陣 題目鏈接 解題思路:順時針旋轉 90° 對應轉換規則 (x,y)->(y,n-x) ,n=N-1 public void rotate(int[][] matrix) { if (m