原创 55、出現次數最多子樹元素和

題目描述: 我一開始就是想讓每個節點的值都求出來,整了一會,然後寫了個存儲,放入map,對map的value進行排序,整了一會反正通過了,但是效率很低 代碼:(我都嫌棄) /** * Definition for a binary

原创 204、根據二叉樹創建字符串

題目描述: 很明顯使用的是遞歸的方法,需要注意的是:如果左子樹爲空,那麼需要直接加上一對括號,並且在進行遞歸時需要注意的是右子樹節點需要放棄 class Solution { public String tree2str(T

原创 203、翻轉圖像

題目描述: 給定一個二進制矩陣 A,我們想先水平翻轉圖像,然後反轉圖像並返回結果。 水平翻轉圖片就是將圖片的每一行都進行翻轉,即逆序。例如,水平翻轉 [1, 1, 0] 的結果是 [0, 1, 1]。 反轉圖片的意思是圖片中的 0 全

原创 二、 總持續時間可被 60 整除的歌曲(Weekly Contest 128)

題目描述: 一開始想成了用map來實現,但是一想不對勁,奈何只能用笨方法來實現了 代碼如下: class Solution { public int numPairsDivisibleBy60(int[] time) {

原创 一、十進制整數的反碼(Weekly Contest 128)

題目描述: 每個非負整數 N 都有其二進制表示。例如, 5 可以被表示爲二進制 “101”,11 可以用二進制 “1011” 表示,依此類推。注意,除 N = 0 外,任何二進制表示中都不含前導零。 二進制的反碼錶示是將每個 1 改爲

原创 53、最小時間差

題目描述: 給定一個 24 小時制(小時:分鐘)的時間列表,找出列表中任意兩個時間的最小時間差並已分鐘數表示。 示例 1: 輸入: [“23:59”,“00:00”] 輸出: 1 備註: 列表中時間數在 2~20000 之間。 每個時

原创 3、有序隊列

題目描述: 給出了一個由小寫字母組成的字符串 S。然後,我們可以進行任意次數的移動。 在每次移動中,我們選擇前 K 個字母中的一個(從左側開始),將其從原位置移除,並放置在字符串的末尾。 返回我們在任意次數的移動之後可以擁有的按字典順

原创 54、全排列II

題目描述 給定一個可包含重複數字的序列,返回所有不重複的全排列。 示例: 輸入: [1,1,2] 輸出: [ [1,1,2], [1,2,1], [2,1,1] ] 思路: 類似與全排列,只是這裏使用了set來判斷是否重複,使用了一個

原创 51、燈泡開關

題目描述: 初始時有 n 個燈泡關閉。 第 1 輪,你打開所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啓,如果開啓則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n 輪

原创 50、長度最小的子數組

題目描述: 給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組。如果不存在符合條件的連續子數組,返回 0。 示例: 輸入: s = 7, nums = [2,3,1,2,4,3]

原创 52、連續數組

題目描述: 給定一個二進制數組, 找到含有相同數量的 0 和 1 的最長連續子數組(的長度)。 示例 1: 輸入: [0,1] 輸出: 2 說明: [0, 1] 是具有相同數量0和1的最長連續子數組。 示例 2: 輸入: [0,1,0

原创 48、數組中重複的數據

題目描述: 給定一個整數數組 a,其中1 ≤ a[i] ≤ n (n爲數組長度), 其中有些元素出現兩次而其他元素出現一次。 找到所有出現兩次的元素。 你可以不用到任何額外空間並在O(n)時間複雜度內解決這個問題嗎? 示例: 輸入:

原创 49、最長重複子數組

題目描述: 給兩個整數數組 A 和 B ,返回兩個數組中公共的、長度最長的子數組的長度。 示例 1: 輸入: A: [1,2,3,2,1] B: [3,2,1,4,7] 輸出: 3 解釋: 長度最長的公共子數組是 [3, 2, 1]。

原创 二、笨階乘(Weekly Contest 127)

題目描述: 思路: 一開始將初始的那個計算出來,然後我們計算需要減去的和,然後我們加上所有的和, 然後進行總的計算即可 class Solution { public int clumsy(int N) {

原创 三、行相等的最少多米諾旋轉(Weekly Contest 127)

題目描述: 當時因爲競賽沒有太多考慮,直接用最笨的方法來寫的,代碼比較冗餘 class Solution { public int minDominoRotations(int[] A, int[] B) {