leetcode

662. Maximum Width of Binary Tree

題目連結: 662. Maximum Width of Binary Tree 題目描述 給定一個二元樹,請找出其最大寬度。 二元樹的寬度定義為任一層中,最左邊與最右邊的非空節點之間的節點數量(包含最左和最右的節點)。如果某一層只有一個節點,則該層的寬度為 1。 注意:答案不需要是連續的節點,只要計算同一層最左與最右非空節點之間的節點數量即可。 限制條件 * 樹中節點的數量範圍是 [1, 3000]。 * -100 <= Node.val <= 100 解題思路 我們需要計算二元樹的最大寬度。為了達到這個目標,可以使用廣度優先搜尋(

560. Subarray Sum Equals K

題目連結: Subarray Sum Equals K 給定一個整數陣列 nums 和一個目標值 k,請找出陣列中和為 k 的連續子陣列的個數。 範例: 輸入: nums = [1,1,1], k = 2 輸出: 2 解釋: 此題有兩個和為 2 的子陣列:[1,1] 與 [1,1] 解題思路 此題要求找出所有連續子陣列,

525. Contiguous Array

題目連結:525. Contiguous Array 題目描述 給定一個二元陣列 nums,請找出長度最長的連續子陣列,使得該子陣列內的 0 和 1 的數量相等,並返回該子陣列的長度。 範例 1. 輸入:[0, 1] 輸出:2 解釋:整個陣列 [0, 1] 包含相等數量的 0 和 1。 2. 輸入:[0, 1,

451. Sort Characters By Frequency

題目連結:Sort Characters By Frequency 題目描述 給定一個字串,請根據字母出現的頻率將其排序,頻率高的字母排在前面。如果頻率相同,字母的順序可以隨意。 限制條件 * 1 <= s.length <= 5 * 10^5 * 字串由 ASCII 字元組成 解題思路 此題要求我們根據字母出現的頻率對字串進行排序。我們需要統計每個字母的出現次數,然後根據頻率進行排序。 有兩種有效的解法: 方法一:優先佇列(Priority Queue) 1.

442. Find All Duplicates in an Array

題目連結:442. Find All Duplicates in an Array 題目描述 給定一個長度為 n 的整數陣列,其中陣列中的數字介於 1 到 n 之間(包括 1 和 n),有些元素可能會出現兩次,而其他元素只出現一次。請找出所有出現兩次的元素,並返回這些元素所組成的陣列。 限制條件 * 時間複雜度:要求為 O(n) * 空間複雜度:要求為 O(