vault backup: 2022-09-06 20:22:48
This commit is contained in:
parent
99e9f02118
commit
8f8ff15ddb
2
.obsidian/appearance.json
vendored
2
.obsidian/appearance.json
vendored
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"theme": "moonstone",
|
"theme": "obsidian",
|
||||||
"translucency": true,
|
"translucency": true,
|
||||||
"cssTheme": "Prism",
|
"cssTheme": "Prism",
|
||||||
"interfaceFontFamily": "IBM Plex Sans",
|
"interfaceFontFamily": "IBM Plex Sans",
|
||||||
|
|
14
.obsidian/graph.json
vendored
14
.obsidian/graph.json
vendored
|
@ -30,15 +30,15 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"collapse-display": false,
|
"collapse-display": false,
|
||||||
"showArrow": false,
|
"showArrow": true,
|
||||||
"textFadeMultiplier": 0,
|
"textFadeMultiplier": 0,
|
||||||
"nodeSizeMultiplier": 1,
|
"nodeSizeMultiplier": 1,
|
||||||
"lineSizeMultiplier": 1,
|
"lineSizeMultiplier": 1,
|
||||||
"collapse-forces": false,
|
"collapse-forces": false,
|
||||||
"centerStrength": 0.518713248970312,
|
"centerStrength": 0.5,
|
||||||
"repelStrength": 10,
|
"repelStrength": 10.5952380952381,
|
||||||
"linkStrength": 1,
|
"linkStrength": 0.505952380952381,
|
||||||
"linkDistance": 250,
|
"linkDistance": 259,
|
||||||
"scale": 0.9747267101258579,
|
"scale": 0.34081054256054544,
|
||||||
"close": true
|
"close": false
|
||||||
}
|
}
|
|
@ -35,9 +35,9 @@ This is where I store notes about CS
|
||||||
|
|
||||||
#### Topics that needs care
|
#### Topics that needs care
|
||||||
|
|
||||||
- #sliding_window
|
- #sliding_window
|
||||||
- #Kadane_s_algorithm
|
- #Kadane_s_algorithm
|
||||||
- #greedy
|
- #greedy
|
||||||
|
|
||||||
## Websites
|
## Websites
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#CS_analysis #difficulty-easy
|
#CS_analysis #difficulty_easy
|
||||||
|
|
||||||
##### Related problems:
|
##### Related problems:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #CS_analysis #difficulty-easy
|
> #CS_analysis #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #CS_analysis #difficulty-
|
> #CS_analysis #difficulty_
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#CS_analysis #difficulty-easy
|
#CS_analysis #difficulty_easy
|
||||||
|
|
||||||
##### Related problems:
|
##### Related problems:
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
> ##### Algorithms:
|
> ##### Algorithms:
|
||||||
>
|
>
|
||||||
> #algorithm #greedy
|
> #algorithm #greedy
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#CS_analysis #difficulty-easy
|
#CS_analysis #difficulty_easy
|
||||||
|
|
||||||
##### Time complexity:
|
##### Time complexity:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,15 +4,15 @@
|
||||||
|
|
||||||
> ##### Data structures:
|
> ##### Data structures:
|
||||||
>
|
>
|
||||||
> #DS #string
|
> #DS #string
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode
|
> #leetcode
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -49,9 +49,9 @@ You must solve the problem without using any built-in library for handling large
|
||||||
|
|
||||||
#### Constraints
|
#### Constraints
|
||||||
|
|
||||||
- `1 <= num1.length, num2.length <= 104`
|
- `1 <= num1.length, num2.length <= 104`
|
||||||
- `num1` and `num2` consist of only digits.
|
- `num1` and `num2` consist of only digits.
|
||||||
- `num1` and `num2` don't have any leading zeros except for the zero itself.
|
- `num1` and `num2` don't have any leading zeros except for the zero itself.
|
||||||
|
|
||||||
### Thoughts
|
### Thoughts
|
||||||
|
|
||||||
|
@ -87,4 +87,4 @@ public:
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-
|
> #coding_problem #difficulty_
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode
|
> #leetcode
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -55,9 +55,9 @@ An **Anagram** is a word or phrase formed by rearranging the letters of a differ
|
||||||
|
|
||||||
#### Constraints
|
#### Constraints
|
||||||
|
|
||||||
- `1 <= strs.length <= 104`
|
- `1 <= strs.length <= 104`
|
||||||
- `0 <= strs[i].length <= 100`
|
- `0 <= strs[i].length <= 100`
|
||||||
- `strs[i]` consists of lowercase English letters.
|
- `strs[i]` consists of lowercase English letters.
|
||||||
|
|
||||||
### Thoughts
|
### Thoughts
|
||||||
|
|
||||||
|
@ -66,8 +66,9 @@ An **Anagram** is a word or phrase formed by rearranging the letters of a differ
|
||||||
|
|
||||||
#### Two way hash table
|
#### Two way hash table
|
||||||
|
|
||||||
This one can be solved simply using two-way hash tables,
|
This one can be solved simply using two-way hash tables,
|
||||||
consisting of two hash tables:
|
consisting of two hash tables:
|
||||||
|
|
||||||
- ana2id: turn anagram into an id
|
- ana2id: turn anagram into an id
|
||||||
- id2str: turn id into strings that has the anagrams
|
- id2str: turn id into strings that has the anagrams
|
||||||
|
|
||||||
|
@ -76,6 +77,7 @@ CPP-style initialization of C's array.
|
||||||
|
|
||||||
> [!tip]
|
> [!tip]
|
||||||
> CPP-style initialization of C array #tip
|
> CPP-style initialization of C array #tip
|
||||||
|
>
|
||||||
> ```cpp
|
> ```cpp
|
||||||
> array<int, 26> ana = {};
|
> array<int, 26> ana = {};
|
||||||
> ```
|
> ```
|
||||||
|
@ -83,12 +85,12 @@ CPP-style initialization of C's array.
|
||||||
Note that vectors doesn't work in unordered hash maps,
|
Note that vectors doesn't work in unordered hash maps,
|
||||||
unless we use custom hash functions.
|
unless we use custom hash functions.
|
||||||
|
|
||||||
And arrays in c style definition (`int arr[26];`) will be
|
And arrays in c style definition (`int arr[26];`) will be
|
||||||
hashed according to address, not conte`nt.
|
hashed according to address, not conte`nt.
|
||||||
|
|
||||||
#### Alternative method
|
#### Alternative method
|
||||||
|
|
||||||
By using sorted strings as keys, we can also solve this
|
By using sorted strings as keys, we can also solve this
|
||||||
problem.
|
problem.
|
||||||
|
|
||||||
Since the input is lowercase English letters, counting
|
Since the input is lowercase English letters, counting
|
||||||
|
@ -135,4 +137,4 @@ public:
|
||||||
|
|
||||||
Counting sort
|
Counting sort
|
||||||
|
|
||||||
#TODO: solve using counting sort
|
#TODO: solve using counting sort
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,19 +4,19 @@
|
||||||
|
|
||||||
> ##### Algorithms:
|
> ##### Algorithms:
|
||||||
>
|
>
|
||||||
> #algorithm #greedy
|
> #algorithm #greedy
|
||||||
>
|
>
|
||||||
> ##### Data structures:
|
> ##### Data structures:
|
||||||
>
|
>
|
||||||
> #DS #array
|
> #DS #array
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode #CS_list_need_understanding
|
> #leetcode #CS_list_need_understanding
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -55,8 +55,8 @@ Given an integer array `nums`, return `true` _if there exists a triple of indice
|
||||||
|
|
||||||
#### Constraints
|
#### Constraints
|
||||||
|
|
||||||
- `1 <= nums.length <= 5 * 105`
|
- `1 <= nums.length <= 5 * 105`
|
||||||
- `-231 <= nums[i] <= 231 - 1`
|
- `-231 <= nums[i] <= 231 - 1`
|
||||||
|
|
||||||
### Thoughts
|
### Thoughts
|
||||||
|
|
||||||
|
@ -67,21 +67,21 @@ Use two variables: `small` and `big` to keep track of stuff.
|
||||||
|
|
||||||
For each element, there are three possibilities:
|
For each element, there are three possibilities:
|
||||||
|
|
||||||
- the element is smaller than `small`, assign the element
|
- the element is smaller than `small`, assign the element
|
||||||
to `small`
|
to `small`
|
||||||
|
|
||||||
> `small` and `big` doesn't represent `i` and `j`,
|
> `small` and `big` doesn't represent `i` and `j`,
|
||||||
> accurately, they get updated lazily.
|
> accurately, they get updated lazily.
|
||||||
> And because we don't need to show `i`, `j`, `k`, this
|
> And because we don't need to show `i`, `j`, `k`, this
|
||||||
> will be just fine
|
> will be just fine
|
||||||
|
|
||||||
- the element is greater than `small`:
|
- the element is greater than `small`:
|
||||||
- the element is smaller than `big`, change `big`, this
|
- the element is smaller than `big`, change `big`, this
|
||||||
allows more possibilities
|
allows more possibilities
|
||||||
- the element is bigger than `big`, found, exit loop.
|
- the element is bigger than `big`, found, exit loop.
|
||||||
|
|
||||||
> #### Why not #stack ?
|
> #### Why not #stack ?
|
||||||
>
|
>
|
||||||
> Similar to [[Leetcode Next-Greater-Element-I]], the property
|
> Similar to [[Leetcode Next-Greater-Element-I]], the property
|
||||||
> of stack can be used for **continuity** related problem, but
|
> of stack can be used for **continuity** related problem, but
|
||||||
> here we don't need this.
|
> here we don't need this.
|
||||||
|
@ -111,4 +111,4 @@ public:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
### Problem
|
### Problem
|
||||||
|
|
||||||
Given a string `s` which consists of lowercase or uppercase letters, return _the length of the **longest palindrome**_ that can be built with those letters.
|
Given a string `s` which consists of lowercase or uppercase letters, return *the length of the **longest palindrome*** that can be built with those letters.
|
||||||
|
|
||||||
Letters are **case sensitive**, for example, `"Aa"` is not considered a palindrome here.
|
Letters are **case sensitive**, for example, `"Aa"` is not considered a palindrome here.
|
||||||
|
|
||||||
|
@ -50,8 +50,8 @@ Letters are **case sensitive**, for example, `"Aa"` is not considered a palindr
|
||||||
|
|
||||||
#### Constraints
|
#### Constraints
|
||||||
|
|
||||||
- `1 <= s.length <= 2000`
|
- `1 <= s.length <= 2000`
|
||||||
- `s` consists of lowercase **and/or** uppercase English letters only.
|
- `s` consists of lowercase **and/or** uppercase English letters only.
|
||||||
|
|
||||||
### Thoughts
|
### Thoughts
|
||||||
|
|
||||||
|
@ -59,9 +59,10 @@ Letters are **case sensitive**, for example, `"Aa"` is not considered a palindr
|
||||||
> This is a #greedy problem.
|
> This is a #greedy problem.
|
||||||
|
|
||||||
The solution is simple: count the apperances, sort it using
|
The solution is simple: count the apperances, sort it using
|
||||||
std::greater<int>(), and select all even number, for odd
|
std::greater<int>(), and select all even number, for odd
|
||||||
number `i`:
|
number `i`:
|
||||||
- if odd numbers has been used: `ans += i - 1` (make it
|
|
||||||
|
- if odd numbers has been used: `ans += i - 1` (make it
|
||||||
even)
|
even)
|
||||||
- if not: `ans += i`, and mark odd number used
|
- if not: `ans += i`, and mark odd number used
|
||||||
|
|
||||||
|
@ -105,4 +106,4 @@ public:
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Links:
|
##### Links:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
>
|
>
|
||||||
> ##### Data structures:
|
> ##### Data structures:
|
||||||
>
|
>
|
||||||
> #DS #array
|
> #DS #array
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,19 +4,19 @@
|
||||||
|
|
||||||
> ##### Algorithms:
|
> ##### Algorithms:
|
||||||
>
|
>
|
||||||
> #algorithm #greedy
|
> #algorithm #greedy
|
||||||
>
|
>
|
||||||
> ##### Data structures:
|
> ##### Data structures:
|
||||||
>
|
>
|
||||||
> #DS #hash_table
|
> #DS #hash_table
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode #CS_list_need_practicing
|
> #leetcode #CS_list_need_practicing
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -62,12 +62,13 @@ A partition like "ababcbacadefegde", "hijhklij" is incorrect, because it splits
|
||||||
#### Why is it a greedy problem?
|
#### Why is it a greedy problem?
|
||||||
|
|
||||||
Consider this situation:
|
Consider this situation:
|
||||||
|
|
||||||
```
|
```
|
||||||
s: ababc
|
s: ababc
|
||||||
partition: abab|c
|
partition: abab|c
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that, for every appearance `ch`, it has be in one
|
Note that, for every appearance `ch`, it has be in one
|
||||||
interval.
|
interval.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -77,7 +78,7 @@ ababc
|
||||||
|
|
|
|
||||||
```
|
```
|
||||||
|
|
||||||
if the interval for a element `b` is bigger than `a`,
|
if the interval for a element `b` is bigger than `a`,
|
||||||
merge it.
|
merge it.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -123,4 +124,4 @@ public:
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
> ##### Algorithms:
|
> ##### Algorithms:
|
||||||
>
|
>
|
||||||
> #algorithm #prefix_sum
|
> #algorithm #prefix_sum
|
||||||
>
|
>
|
||||||
> ##### Data structures:
|
> ##### Data structures:
|
||||||
>
|
>
|
||||||
|
@ -12,11 +12,11 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode #CS_list_need_understanding
|
> #leetcode #CS_list_need_understanding
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
##### Links:
|
##### Links:
|
||||||
|
|
||||||
- [Link to problem](https://leetcode.com/problems/product-of-array-except-self/)
|
- [Link to problem](https://leetcode.com/problems/product-of-array-except-self/)
|
||||||
- [Solution with explanation](https://leetcode.com/problems/product-of-array-except-self/discuss/1597994/C%2B%2BPython-4-Simple-Solutions-w-Explanation-or-Prefix-and-Suffix-product-O(1)-space-approach)
|
- [Solution with explanation](<https://leetcode.com/problems/product-of-array-except-self/discuss/1597994/C%2B%2BPython-4-Simple-Solutions-w-Explanation-or-Prefix-and-Suffix-product-O(1)-space-approach>)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -51,16 +51,16 @@ You must write an algorithm that runs in `O(n)` time and without using the div
|
||||||
|
|
||||||
#### Constraints
|
#### Constraints
|
||||||
|
|
||||||
- `2 <= nums.length <= 105`
|
- `2 <= nums.length <= 105`
|
||||||
- `-30 <= nums[i] <= 30`
|
- `-30 <= nums[i] <= 30`
|
||||||
- The product of any prefix or suffix of `nums` is **guaranteed** to fit in a **32-bit** integer.
|
- The product of any prefix or suffix of `nums` is **guaranteed** to fit in a **32-bit** integer.
|
||||||
|
|
||||||
### Thoughts
|
### Thoughts
|
||||||
|
|
||||||
> [!summary]
|
> [!summary]
|
||||||
> This is a variation of #prefix_sum
|
> This is a variation of #prefix_sum
|
||||||
|
|
||||||
I thought of using prefix product, a variation of
|
I thought of using prefix product, a variation of
|
||||||
prefix_sum, which perfectly fits the requirement.
|
prefix_sum, which perfectly fits the requirement.
|
||||||
|
|
||||||
#### First iteration:
|
#### First iteration:
|
||||||
|
@ -148,6 +148,7 @@ public:
|
||||||
```
|
```
|
||||||
|
|
||||||
First iteration:
|
First iteration:
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
class Solution {
|
class Solution {
|
||||||
public:
|
public:
|
||||||
|
@ -176,4 +177,4 @@ public:
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,15 +4,15 @@
|
||||||
|
|
||||||
> ##### Data structures:
|
> ##### Data structures:
|
||||||
>
|
>
|
||||||
> #DS #hash_table #string
|
> #DS #hash_table #string
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode
|
> #leetcode
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
The **DNA sequence** is composed of a series of nucleotides abbreviated as `'A'`, `'C'`, `'G'`, and `'T'`.
|
The **DNA sequence** is composed of a series of nucleotides abbreviated as `'A'`, `'C'`, `'G'`, and `'T'`.
|
||||||
|
|
||||||
- For example, `"ACGAATTCCG"` is a **DNA sequence**.
|
- For example, `"ACGAATTCCG"` is a **DNA sequence**.
|
||||||
|
|
||||||
When studying **DNA**, it is useful to identify repeated sequences within the DNA.
|
When studying **DNA**, it is useful to identify repeated sequences within the DNA.
|
||||||
|
|
||||||
|
@ -57,18 +57,21 @@ The question ask for an answer, and the substrings can
|
||||||
overlap. So, using a map is prefered(Why?)
|
overlap. So, using a map is prefered(Why?)
|
||||||
|
|
||||||
Two reasons:
|
Two reasons:
|
||||||
- Easy way to know if a array is a duplicate (set, map can
|
|
||||||
|
- Easy way to know if a array is a duplicate (set, map can
|
||||||
suffice.)
|
suffice.)
|
||||||
- Keep information on how many duplicates found, so we only
|
- Keep information on how many duplicates found, so we only
|
||||||
append it to the answer the first time we meet it.
|
append it to the answer the first time we meet it.
|
||||||
|
|
||||||
One trip-over hole: in the for loop, upper bound should be:
|
One trip-over hole: in the for loop, upper bound should be:
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
for (int i = 0, top = s.size() - 9; i < top; i++)
|
for (int i = 0, top = s.size() - 9; i < top; i++)
|
||||||
^^^
|
^^^
|
||||||
```
|
```
|
||||||
|
|
||||||
Minus 9, because 9 is the extended length for an subarray starting with i.
|
Minus 9, because 9 is the extended length for an subarray starting with i.
|
||||||
|
|
||||||
```
|
```
|
||||||
1234567890
|
1234567890
|
||||||
^ ^
|
^ ^
|
||||||
|
@ -100,4 +103,4 @@ public:
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-medium
|
#leetcode #coding_problem #difficulty_medium
|
||||||
|
|
||||||
##### Lists:
|
##### Lists:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,19 +4,19 @@
|
||||||
|
|
||||||
> ##### Algorithms:
|
> ##### Algorithms:
|
||||||
>
|
>
|
||||||
> #algorithm #hash_table
|
> #algorithm #hash_table
|
||||||
>
|
>
|
||||||
> ##### Data structures:
|
> ##### Data structures:
|
||||||
>
|
>
|
||||||
> #DS #array
|
> #DS #array
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode #CS_list_need_practicing
|
> #leetcode #CS_list_need_practicing
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -49,28 +49,28 @@ A subarray is a contiguous **non-empty** sequence of elements within an array.
|
||||||
|
|
||||||
#### Constraints
|
#### Constraints
|
||||||
|
|
||||||
- `1 <= nums.length <= 2 * 104`
|
- `1 <= nums.length <= 2 * 104`
|
||||||
- `-1000 <= nums[i] <= 1000`
|
- `-1000 <= nums[i] <= 1000`
|
||||||
- `-107 <= k <= 107`
|
- `-107 <= k <= 107`
|
||||||
|
|
||||||
### Thoughts
|
### Thoughts
|
||||||
|
|
||||||
> [!summary]
|
> [!summary]
|
||||||
> This can be solved using #prefix_sum and #hash_table
|
> This can be solved using #prefix_sum and #hash_table
|
||||||
|
|
||||||
> I over-complicated the solution by adding stuff like
|
> I over-complicated the solution by adding stuff like
|
||||||
> sorting, but it turn out to be not so difficult.
|
> sorting, but it turn out to be not so difficult.
|
||||||
|
|
||||||
> [!tip]
|
> [!tip]
|
||||||
> Tried using sliding window, but it doesn't work because of
|
> Tried using sliding window, but it doesn't work because of
|
||||||
> negative numbers.
|
> negative numbers.
|
||||||
|
|
||||||
This one is harder to understand, making it a medium
|
This one is harder to understand, making it a medium
|
||||||
difficulty problem.
|
difficulty problem.
|
||||||
|
|
||||||
The intuition is using prefix to count the subarray sum, and
|
The intuition is using prefix to count the subarray sum, and
|
||||||
use hashmaps to count the **number of subarray sums**. This
|
use hashmaps to count the **number of subarray sums**. This
|
||||||
takes care of **negative numbers** which is not solvable
|
takes care of **negative numbers** which is not solvable
|
||||||
using sliding windows.
|
using sliding windows.
|
||||||
|
|
||||||
We step one cell at a time, and try to ask ourselves:
|
We step one cell at a time, and try to ask ourselves:
|
||||||
|
@ -111,6 +111,7 @@ public:
|
||||||
```
|
```
|
||||||
|
|
||||||
TLE, brute force
|
TLE, brute force
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
class Solution {
|
class Solution {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#coding_problem #leetcode #difficulty-easy
|
#coding_problem #leetcode #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#leetcode #coding_problem #difficulty-easy
|
#leetcode #coding_problem #difficulty_easy
|
||||||
|
|
||||||
##### Related topics:
|
##### Related topics:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-medium
|
> #coding_problem #difficulty_medium
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
>
|
>
|
||||||
> ##### Difficulty:
|
> ##### Difficulty:
|
||||||
>
|
>
|
||||||
> #coding_problem #difficulty-easy
|
> #coding_problem #difficulty_easy
|
||||||
>
|
>
|
||||||
> ##### Additional tags:
|
> ##### Additional tags:
|
||||||
>
|
>
|
||||||
> #leetcode
|
> #leetcode
|
||||||
>
|
>
|
||||||
> ##### Revisions:
|
> ##### Revisions:
|
||||||
>
|
>
|
||||||
|
@ -49,27 +49,28 @@ Here **follow** means a full match, such that there is a bijection between a let
|
||||||
|
|
||||||
#### Constraints
|
#### Constraints
|
||||||
|
|
||||||
- `1 <= pattern.length <= 300`
|
- `1 <= pattern.length <= 300`
|
||||||
- `pattern` contains only lower-case English letters.
|
- `pattern` contains only lower-case English letters.
|
||||||
- `1 <= s.length <= 3000`
|
- `1 <= s.length <= 3000`
|
||||||
- `s` contains only lowercase English letters and spaces `' '`.
|
- `s` contains only lowercase English letters and spaces `' '`.
|
||||||
- `s` **does not contain** any leading or trailing spaces.
|
- `s` **does not contain** any leading or trailing spaces.
|
||||||
- All the words in `s` are separated by a **single space**.
|
- All the words in `s` are separated by a **single space**.
|
||||||
|
|
||||||
### Thoughts
|
### Thoughts
|
||||||
|
|
||||||
> [!summary]
|
> [!summary]
|
||||||
> This is a #string operation problem.
|
> This is a #string operation problem.
|
||||||
|
|
||||||
The main part is using two hash tables, to check for
|
The main part is using two hash tables, to check for
|
||||||
mismatches, and using `istringstream` to read from string
|
mismatches, and using `istringstream` to read from string
|
||||||
|
|
||||||
Two hash tables:
|
Two hash tables:
|
||||||
|
|
||||||
- One is used to check for s has one and only bound word
|
- One is used to check for s has one and only bound word
|
||||||
- The other is used to check that the word is only stored
|
- The other is used to check that the word is only stored
|
||||||
once
|
once
|
||||||
|
|
||||||
Using one hash table is one way, which makes one way
|
Using one hash table is one way, which makes one way
|
||||||
unchecked.
|
unchecked.
|
||||||
|
|
||||||
### Solution
|
### Solution
|
||||||
|
@ -105,4 +106,4 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
|
@ -41,4 +41,4 @@ By using two pointers, to in place modify array elements.
|
||||||
|
|
||||||
Refer to [this link](https://leetcode.com/problems/subarray-sum-equals-k/discuss/301242/General-summary-of-what-kind-of-problem-can-cannot-solved-by-Two-Pointers)
|
Refer to [this link](https://leetcode.com/problems/subarray-sum-equals-k/discuss/301242/General-summary-of-what-kind-of-problem-can-cannot-solved-by-Two-Pointers)
|
||||||
|
|
||||||
#TODO: complete this section
|
#TODO: complete this section
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#CS_analysis #difficulty-easy
|
#CS_analysis #difficulty_easy
|
||||||
|
|
||||||
##### Related problems:
|
##### Related problems:
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#CS_analysis #difficulty-easy
|
#CS_analysis #difficulty_easy
|
||||||
|
|
||||||
##### Related problems:
|
##### Related problems:
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#CS_analysis #difficulty-easy
|
#CS_analysis #difficulty_easy
|
||||||
|
|
||||||
##### Related problems:
|
##### Related problems:
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
##### Difficulty:
|
##### Difficulty:
|
||||||
|
|
||||||
#CS_analysis #difficulty-easy
|
#CS_analysis #difficulty_easy
|
||||||
|
|
||||||
##### Related problems:
|
##### Related problems:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue