vault backup: 2022-09-06 20:22:48

This commit is contained in:
juan 2022-09-06 20:22:48 +08:00
parent 99e9f02118
commit 8f8ff15ddb
99 changed files with 195 additions and 185 deletions

View file

@ -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
View file

@ -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
} }

View file

@ -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

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#CS_analysis #difficulty-easy #CS_analysis #difficulty_easy
##### Related problems: ##### Related problems:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #CS_analysis #difficulty-easy > #CS_analysis #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #CS_analysis #difficulty- > #CS_analysis #difficulty_
> >
> ##### Additional tags: > ##### Additional tags:

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#CS_analysis #difficulty-easy #CS_analysis #difficulty_easy
##### Related problems: ##### Related problems:

View file

@ -4,7 +4,7 @@
> ##### Algorithms: > ##### Algorithms:
> >
> #algorithm #greedy > #algorithm #greedy
> >
> ##### Difficulty: > ##### Difficulty:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#CS_analysis #difficulty-easy #CS_analysis #difficulty_easy
##### Time complexity: ##### Time complexity:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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;
} }
}; };
``` ```

View file

@ -4,7 +4,7 @@
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty- > #coding_problem #difficulty_
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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;
} }
}; };
``` ```

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -16,7 +16,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -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;
} }
}; };
``` ```

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Links: ##### Links:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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;
} }
}; };
``` ```

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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;
} }
}; };
``` ```

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -10,7 +10,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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;
} }
}; };
``` ```

View file

@ -10,7 +10,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-medium #leetcode #coding_problem #difficulty_medium
##### Lists: ##### Lists:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#coding_problem #leetcode #difficulty-easy #coding_problem #leetcode #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -14,7 +14,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -8,7 +8,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-easy > #coding_problem #difficulty_easy
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -10,7 +10,7 @@
##### Difficulty: ##### Difficulty:
#leetcode #coding_problem #difficulty-easy #leetcode #coding_problem #difficulty_easy
##### Related topics: ##### Related topics:

View file

@ -12,7 +12,7 @@
> >
> ##### Difficulty: > ##### Difficulty:
> >
> #coding_problem #difficulty-medium > #coding_problem #difficulty_medium
> >
> ##### Additional tags: > ##### Additional tags:
> >

View file

@ -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:
} }
} }
}; };
``` ```

View file

@ -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

View file

@ -10,7 +10,7 @@
##### Difficulty: ##### Difficulty:
#CS_analysis #difficulty-easy #CS_analysis #difficulty_easy
##### Related problems: ##### Related problems:

View file

@ -10,7 +10,7 @@
##### Difficulty: ##### Difficulty:
#CS_analysis #difficulty-easy #CS_analysis #difficulty_easy
##### Related problems: ##### Related problems:

View file

@ -10,7 +10,7 @@
##### Difficulty: ##### Difficulty:
#CS_analysis #difficulty-easy #CS_analysis #difficulty_easy
##### Related problems: ##### Related problems:

View file

@ -10,7 +10,7 @@
##### Difficulty: ##### Difficulty:
#CS_analysis #difficulty-easy #CS_analysis #difficulty_easy
##### Related problems: ##### Related problems: