原创 【leetcode455】【貪心策略】分配餅乾

題目 假設你是一位很棒的家長,想要給你的孩子們一些小餅乾。但是,每個孩子最多隻能給一塊餅乾。對每個孩子 i ,都有一個胃口值 gi ,這是能讓孩子們滿足胃口的餅乾的最小尺寸;並且每塊餅乾 j ,都有一個尺寸 sj 。如果 sj >

原创 【leetcode435】【貪心策略】無重疊區間【java】

題目 給定一個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。 注意: 可以認爲區間的終點總是大於它的起點。 區間 [1,2] 和 [2,3] 的邊界相互“接觸”,但沒有相互重疊。 示例 1: 輸入: [ [1,2],

原创 【LeetCode650. 只有兩個鍵的鍵盤】java DP

題目 最初在一個記事本上只有一個字符 ‘A’。你每次可以對這個記事本進行兩種操作: Copy All (複製全部) : 你可以複製這個記事本中的所有字符(部分的複製是不允許的)。 Paste (粘貼) : 你可以粘貼你上一次複製的

原创 【leetcode451】【hashmap+桶排序】按照字符出現次數對字符串排序

題目 給定一個字符串,請將字符串裏的字符按照出現的頻率降序排列。 示例 1: 輸入: “tree” 輸出: “eert” 解釋: 'e’出現兩次,'r’和’t’都只出現一次。 因此’e’必須出現在’r’和’t’之前。此外,"eet

原创 【LeetCode347】前k個高頻元素【hashmap+桶排序】

題目 給定一個非空的整數數組,返回其中出現頻率前 k 高的元素。 示例 1: 輸入: nums = [1,1,1,2,2,3], k = 2 輸出: [1,2] 示例 2: 輸入: nums = [1], k = 1 輸出: [1

原创 【LeetCode215】數組中的第K個最大元素【快排 堆排】

題目 在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序後的第 k 個最大的元素,而不是第 k 個不同的元素。 示例 1: 輸入: [3,2,1,5,6,4] 和 k = 2 輸出: 5 示例 2: 輸入: [

原创 【劍指offer】【java】【隊列】圓圈中最後剩下的數【約瑟夫環】

題目 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作爲牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號爲0的小朋友開始

原创 【DP解決爬樓梯】爬樓梯【java】【leetcode70】

題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。

原创 【LeetCode692】前K個高頻單詞【hashmap+pq】【hashmap+桶排序】

題目 給一非空的單詞列表,返回前 k 個出現次數最多的單詞。 返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。 示例 1: 輸入: [“i”, “love”, “leetcode”, “i”

原创 【LeetCode680】【雙指針】迴文字符串2

題目 給定一個非空字符串 s,最多刪除一個字符。判斷是否能成爲迴文字符串。 示例 1: 輸入: “aba” 輸出: True 示例 2: 輸入: “abca” 輸出: True 解釋: 你可以刪除c字符。 思路 1.前後指針操作

原创 【leetcode241】【java】【分治法】爲運算表達式設計優先級

題目 給定一個含有數字和運算符的字符串,爲表達式添加括號,改變其運算優先級以求出不同的結果。你需要給出所有可能的組合的結果。有效的運算符號包含 +, - 以及 * 。 示例 1: 輸入: “2-1-1” 輸出: [0, 2] 解釋

原创 279. 完全平方數【LeetCode DP】

題目 給定正整數 n,找到若干個完全平方數(比如 1, 4, 9, 16, …)使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。 示例 1: 輸入: n = 12 輸出: 3 解釋: 12 = 4 + 4 + 4. 示

原创 【leetcode46】【DFS回溯】全排列

題目 給定一個 沒有重複 數字的序列,返回其所有可能的全排列。 示例: 輸入: [1,2,3] 輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 來源:力扣(

原创 【leetcode200】【DFS】島嶼數量 網格搜索DFS經典題型

題目 給定一個由 ‘1’(陸地)和 ‘0’(水)組成的的二維網格,計算島嶼的數量。一個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連接而成的。你可以假設網格的四個邊均被水包圍。 示例 1: 輸入: 11110 11010

原创 【leetcode55】跳躍遊戲【DPjava】

題目 給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 我們可以先跳 1