原创 LeetCode 301. Remove Invalid Parentheses(DP)

題目 DP 險過。 dp[i][j] :means it need remove at least dp[i][j] characters to get vaild parenthese from position i to postion

原创 LeetCode 230. Kth Smallest Element in a BST

題目 題意:判斷BST中第k大的節點 題解:中序遍歷 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNod

原创 LeetCode 234. Palindrome Linked List

題目 判斷一個鏈表是否是迴文的。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next;

原创 LeetCode 219. Contains Duplicate II

題目 typedef long long int _int; class Solution { public: multiset<_int> m; bool containsNearbyDuplicate(vecto

原创 LeetCode 215. Kth Largest Element in an Array(排序)

題目 題意:找到一個數組裏第K大的數字。 題解:我們當然可以排序好了,之後,選擇第K大的數字。但是這樣做一點技術含量也沒有。 排序算法選用快排。尋找第K大的數字,不必把數組完全排完序之後,再找第K大。快排中是選取一個數字,把大

原创 LeetCode 216. Combination Sum III(DFS)

題目 題意:從1-9中選出k個數之和等於n,這個k個數不能有相同的,輸出所有可能的k個數字的集合,結果也不能重複 題解:暴搜,從n開始,每次減去1-9中的某個數字,然後繼續遞歸。要注意剪枝,比如1-9中的數字大於n/k的是不可能存在答案中的

原创 Contest 176 - LeetCode 1353. Maximum Number of Events That Can Be Attended (貪心)

題目 題意:有n個節目,每個節目有一個持續的天數,你一天只能看一個節目,問你這麼多天最多能看幾個節目 題解:貪心,我們把那種截止日期最近的節目,都看了。把節目按照截止日期從小到大排序。接下來一個一個節目看,可以用數組標記的方法,for循環判

原创 Contest 176 - LeetCode 1351. Count Negative Numbers in a Sorted Matrix

題目 class Solution { public: int countNegatives(vector<vector<int>>& grid) { int ans=0; for(

原创 Contest 176 LeetCode 1354. Construct Target Array With Multiple Sums(優先隊列,遞推)

題目 題意:舉例:給你一個數組[9,3,5],問你這個數組是否可以由數組[1,1,1]經過某種變換得到。 變換的步驟就是每次用數組的和,去替代數組中的某一個元素,直到達到目標數組。 題解:我們從後往前遞推,比如[9,3,5]

原创 Contest 176 - LeetCode 1352. Product of the Last K Numbers

題目 題意:求一個數組的後k個數字的乘積,這個數組是不斷動態增加的。 題解:由於數字可能爲0,所以我們只要維護最後一個0 的位置pos 之後的所有數字的前綴乘積就可以了。如果k<pos 答案顯然爲0,如果k>pos那麼答案就是s[len]/

原创 LeetCode 213. House Robber II (動態規劃)

題目 和這道題目 https://www.cnblogs.com/dacc123/p/12295924.html 一樣,改進了一點,就是首尾也是相鄰的。 那麼我們在DP的時候,還要考慮第一個房子有沒有被搶劫的情況。所以狀態數組變成了DP[i

原创 LeetCode 211. Add and Search Word - Data structure design(字典樹)

題目 字典樹。 class WordDictionary { public: int map[100005][26]; int tag[100005]; int num; /** Initialize you

原创 LeetCode 205. Isomorphic Strings

題目 class Solution { public: int m[300]; int m2[300]; bool isIsomorphic(string s, string t) {

原创 LeetCode 218. The Skyline Problem(線段樹+離散化)

題目 題意:就是有一些矩形,然後讓你輸出一些點,這些點連成的線是這些矩形的外圍。叫做城市天際線。具體的看題目就好了。 題解:首先,設立一個區間,用數組表示。每遇到一個矩形,我們就把這個矩形的底部的寬所佔的區間的值全部都設成這個矩形的高。

原创 LeetCode 209. Minimum Size Subarray Sum(DP)

題目 題意:求一個數組裏最短的連續子序列的和大於等於s的長度 題解:可以用動態規劃,我就是用動態規劃過的,但是確實不是最簡單的解法,看了題解最簡單的是雙指針, 雙指針 class Solution { public: int min