開始積累自己的題量了,不得不說leetcode這種專門針對一類題目的每日一題真的太適合萌新了,這個月做完希望滑動視窗的題目能夠自信手撕。
思路:我們可以分別算出愛麗絲和鮑勃的糖果棒大小的總和,這樣對於鮑勃/愛麗絲的每一根糖果,需要愛麗絲/鮑勃交換的那根的大小就是固定的。然後就變成尋找數字的問題了。採用雜湊是查詢最快的方法。
class
solution
}return ans;}}
;
時間複雜度o(n)
空間複雜度o(1)
2/2見鏈結題解
2/3見鏈結題解
思路:對於每個元素:儲存小標到目前為止的元素和,用於後序快速算出滑動視窗內的元素和。
後序只要固定視窗大小往右滑動,每次更新最大值即可。
class
solution
double ans = nums[k -1]
*1.0
/ k;
for(
int i = k ; i < nums.
size()
; i++
)return ans;}}
;
時間複雜度o(n)
空間複雜度o(1)
思路:和 替換後的最長重複子字串 、 最長不含重複字元的子字串 差不多,右邊界不斷擴大,直到發現不滿足的時候左邊界再改變,右邊界超過陣列的時候停止,非常經典的滑動視窗模板。
class
solution
right++;}
return right - left;}}
;
時間複雜度o(n)
空間複雜度o(1)
每日一題 LeetCode
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...
LeetCode每日一題(題1028)
最近在刷leetcode每日一題,每次做完之後總能有些收穫,所以想著不如每天寫個部落格記錄一下做的題目的解法以及自己寫的時候問題出在 從先序遍歷還原二叉樹 題目大意 給出乙個字串 1 2 3 4 5 6 7 1代表節點的值,前面的 個數代表節點的深度。如果只有乙個子節點,保證這個節點為左子節點。返回...
LeetCode每日一題(題139)
題目 題目大意 給出乙個字串s和乙個字串陣列words,判斷s是否能夠拆分成多個words中的字串。分析 這道題比較簡單的方式應該是採用動態規劃來做。對於任意乙個字串中的區間,可以判斷該區間組成的字串是否在字典中,如果是,則這個區間的真假取決於前面那個區間的真假。給出狀態轉移方程dp i dp j ...