原创 leetcode 357. Count Numbers with Unique Digits 解題報告

原題鏈接 解題思路 很簡單找出通項公式,遞推求解。 解題代碼 public class Solution { public int countNumbersWithUniqueDigits(int n) {

原创 leetcode 365. Water and Jug Problem 解題報告

題目鏈接 解題思路 此題其實就是一個數學題,求最大公約數的倍數。坑的話,就是0,0,0這組測試案例。其它沒啥好說的直接上代碼。 解題代碼 public class Solution { public boolean can

原创 leetcode 347. Top K Frequent Elements 解題報告

題目鏈接 解題思路 使用Map將數字和對應的頻率按照鍵值對存儲起來 使用TreeMap和HashMap進行利用value值進行排序 按照題目要求輸出前K大 使用的方法不夠好。後面又使用了另外的方法另建一個對象存儲數字和對應的頻

原创 OkHttp源碼分析之基本框架1

最近寫了一個小項目,用的就是okhttp+retrofit組合。今天我就寫寫OkHttp的源碼分析,能力有限,有不足的地方希望大家能給我指出來,相互學習。 基本框架流程 主要類 Requst:Http的請求類 OkHttpCli

原创 leetcode 337. House Robber III

原題鏈接 原題鏈接 解題思路 找了一下午的突破口。後面根據其他人的答案找到了。遺憾不是自己獨立完成的。 此題考察dfs和動態規劃吧。子問題:每一個節點都有兩種操作,選自己或不選自己。兩種操作對應了兩個最大值。然後dfs到最深處,

原创 OkHttp源碼分析之基本框架2

接上篇。 (主要從網絡拉取響應分析)從sendRequest方法中可以看到 httpStream = connect(); httpStream.setHttpEngine(this); 接下來,我們就看看connect()方法

原创 leetcode 343. Integer Break 解題報告

原題鏈接 解題思路 剛開始想了很多,後來尋思着找規律吧。然後列了2到10的答案,最後發現從7開始答案等於ans[i] = ans[i-3]*3; 解題代碼 public class Solution { public in

原创 leetcode 367. Valid Perfect Square

原題鏈接 原題鏈接 解題思路 這題非常明顯,不能用sqrt,那就用二分法解決。本題還是有坑的,就是使用long,因爲給的num可能非常大,導致兩數相乘超過int。我在這裏剛開始考慮沒到,錯了幾次, 二分法經典步驟。先設left

原创 leetcode 345. Reverse Vowels of a String 解題報告

原題鏈接 解題思路 首先將元音存儲在一個list中,方便判斷。(包括大小寫) 遍歷原字符串將裏面的元音記錄到StringBuilder中,並反轉 遍歷原字符串,將反轉後的StringBuilder裏的char寫入char數組中

原创 Http協議

URI URI是uniform locator identifier的縮寫,意義爲統一資源標識符.包括兩個子分類,一個是URL(uniform resource locator),另一個是URN(uniform resource

原创 leetcode 334. Increasing Triplet Subsequence

原題鏈接 原題鏈接 解題思路 題目要求在n時間複雜度,一次遍歷搞定。 設定min,mid兩個指示值。 搞定mid的取值。(用flag來找,第一個比min大的數就是mid) 只要有大於mid返回true,結束。 解題代碼 pub

原创 leetcode 332. Reconstruct Itinerary

原題鏈接 原題鏈接 解題思路 考察圖以及深度搜索。dfs算法(也就是遞歸)注意一個是邊界點,一個是狀態恢復的過程。此題很明顯當ans.size() == tickets.length+1結束。有些排在列表前面的頂點沒有dest,就

原创 leetcode 342. Power of Four 解題報告

原題鏈接 解題思路 剛開始題目理解錯了,不過仔細審題後輕鬆解決 首先把特殊數字處理了,即非正數和1 將要處理的數字num & (num-1)。這樣可以得出其總共有幾個1(二進制) 若只有最高位爲1,那再判斷其二進制0的總個數是否

原创 leetcode 373. Find K Pairs with Smallest Sums

原題鏈接 原題鏈接 解題思路 解這道題花了一點時間。發現用PriorityQueue來解決這問題就變得簡單了。 先用一個類封裝了row,col,val,並實現compareTo方法,方便用PriorityQueue排序。 先將最

原创 leetcode 375. Guess Number Higher or Lower II 解題報告

原題鏈接 原題鏈接 解題思路 剛開始並不是很理解題意,然後去看了看討論區的大神們。大概明白了。 對於每一個數字x在數組[i~j],我們算他的花費爲 x + max{DP([i~x-1]), DP([x+1, j])}。 the