From 3013bb67536079797b879d94b9c5977948e91bc4 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Sun, 25 Aug 2024 22:52:35 +0800 Subject: [PATCH 1/4] feat: add solutions to lc problems: No.3264,3265 * No.3264.Final Array State After K Multiplication Operations I * No.3265.Count Almost Equal Pairs I --- .../README.md | 114 +++++++++++++- .../README_EN.md | 114 +++++++++++++- .../Solution.cpp | 22 +++ .../Solution.go | 39 +++++ .../Solution.java | 15 ++ .../Solution.py | 9 ++ .../Solution.ts | 14 ++ .../3265.Count Almost Equal Pairs I/README.md | 141 +++++++++++++++++- .../README_EN.md | 141 +++++++++++++++++- .../Solution.cpp | 28 ++++ .../Solution.go | 26 ++++ .../Solution.java | 30 ++++ .../Solution.py | 16 ++ .../Solution.ts | 26 ++++ 14 files changed, 719 insertions(+), 16 deletions(-) create mode 100644 solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.cpp create mode 100644 solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.go create mode 100644 solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.java create mode 100644 solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.py create mode 100644 solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.ts create mode 100644 solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.cpp create mode 100644 solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.go create mode 100644 solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.java create mode 100644 solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.py create mode 100644 solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.ts diff --git a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README.md b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README.md index a355be248bbb5..63f3dfd3d839f 100644 --- a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README.md +++ b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README.md @@ -114,32 +114,138 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3200-3299/3264.Fi -### 方法一 +### 方法一:优先队列(小根堆)+ 模拟 + +我们可以用一个小根堆来维护数组 $\textit{nums}$ 中的元素,每次从小根堆中取出最小值,将其乘以 $\textit{multiplier}$ 后再放回小根堆中。在实现过程中,我们往小根堆插入的是元素的下标,然后自定义比较函数,使得小根堆按照 $\textit{nums}$ 中元素的大小作为第一关键字,下标作为第二关键字进行排序。 + +最后,我们返回数组 $\textit{nums}$ 即可。 + +时间复杂度 $O((n + k) \times \log n)$,空间复杂度 $O(n)$。其中 $n$ 是数组 $\textit{nums}$ 的长度。 #### Python3 ```python - +class Solution: + def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]: + pq = [(x, i) for i, x in enumerate(nums)] + heapify(pq) + for _ in range(k): + _, i = heappop(pq) + nums[i] *= multiplier + heappush(pq, (nums[i], i)) + return nums ``` #### Java ```java - +class Solution { + public int[] getFinalState(int[] nums, int k, int multiplier) { + PriorityQueue pq + = new PriorityQueue<>((i, j) -> nums[i] - nums[j] == 0 ? i - j : nums[i] - nums[j]); + for (int i = 0; i < nums.length; i++) { + pq.offer(i); + } + while (k-- > 0) { + int i = pq.poll(); + nums[i] *= multiplier; + pq.offer(i); + } + return nums; + } +} ``` #### C++ ```cpp - +class Solution { +public: + vector getFinalState(vector& nums, int k, int multiplier) { + auto cmp = [&nums](int i, int j) { + return nums[i] == nums[j] ? i > j : nums[i] > nums[j]; + }; + priority_queue, decltype(cmp)> pq(cmp); + + for (int i = 0; i < nums.size(); ++i) { + pq.push(i); + } + + while (k--) { + int i = pq.top(); + pq.pop(); + nums[i] *= multiplier; + pq.push(i); + } + + return nums; + } +}; ``` #### Go ```go +func getFinalState(nums []int, k int, multiplier int) []int { + h := &hp{nums: nums} + for i := range nums { + heap.Push(h, i) + } + + for k > 0 { + i := heap.Pop(h).(int) + nums[i] *= multiplier + heap.Push(h, i) + k-- + } + + return nums +} + +type hp struct { + sort.IntSlice + nums []int +} + +func (h *hp) Less(i, j int) bool { + if h.nums[h.IntSlice[i]] == h.nums[h.IntSlice[j]] { + return h.IntSlice[i] < h.IntSlice[j] + } + return h.nums[h.IntSlice[i]] < h.nums[h.IntSlice[j]] +} + +func (h *hp) Pop() any { + old := h.IntSlice + n := len(old) + x := old[n-1] + h.IntSlice = old[:n-1] + return x +} + +func (h *hp) Push(x any) { + h.IntSlice = append(h.IntSlice, x.(int)) +} +``` +#### TypeScript + +```ts +function getFinalState(nums: number[], k: number, multiplier: number): number[] { + const pq = new PriorityQueue({ + compare: (i, j) => (nums[i] === nums[j] ? i - j : nums[i] - nums[j]), + }); + for (let i = 0; i < nums.length; ++i) { + pq.enqueue(i); + } + while (k--) { + const i = pq.dequeue()!; + nums[i] *= multiplier; + pq.enqueue(i); + } + return nums; +} ``` diff --git a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README_EN.md b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README_EN.md index a17786c1894f9..bd93fdade75f7 100644 --- a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README_EN.md +++ b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/README_EN.md @@ -112,32 +112,138 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3200-3299/3264.Fi -### Solution 1 +### Solution 1: Priority Queue (Min-Heap) + Simulation + +We can use a min-heap to maintain the elements in the array $\textit{nums}$. Each time, we extract the minimum value from the min-heap, multiply it by $\textit{multiplier}$, and then put it back into the min-heap. During the implementation, we insert the indices of the elements into the min-heap and define a custom comparator function to sort the min-heap based on the values of the elements in $\textit{nums}$ as the primary key and the indices as the secondary key. + +Finally, we return the array $\textit{nums}$. + +The time complexity is $O((n + k) \times \log n)$, and the space complexity is $O(n)$. Here, $n$ is the length of the array $\textit{nums}$. #### Python3 ```python - +class Solution: + def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]: + pq = [(x, i) for i, x in enumerate(nums)] + heapify(pq) + for _ in range(k): + _, i = heappop(pq) + nums[i] *= multiplier + heappush(pq, (nums[i], i)) + return nums ``` #### Java ```java - +class Solution { + public int[] getFinalState(int[] nums, int k, int multiplier) { + PriorityQueue pq + = new PriorityQueue<>((i, j) -> nums[i] - nums[j] == 0 ? i - j : nums[i] - nums[j]); + for (int i = 0; i < nums.length; i++) { + pq.offer(i); + } + while (k-- > 0) { + int i = pq.poll(); + nums[i] *= multiplier; + pq.offer(i); + } + return nums; + } +} ``` #### C++ ```cpp - +class Solution { +public: + vector getFinalState(vector& nums, int k, int multiplier) { + auto cmp = [&nums](int i, int j) { + return nums[i] == nums[j] ? i > j : nums[i] > nums[j]; + }; + priority_queue, decltype(cmp)> pq(cmp); + + for (int i = 0; i < nums.size(); ++i) { + pq.push(i); + } + + while (k--) { + int i = pq.top(); + pq.pop(); + nums[i] *= multiplier; + pq.push(i); + } + + return nums; + } +}; ``` #### Go ```go +func getFinalState(nums []int, k int, multiplier int) []int { + h := &hp{nums: nums} + for i := range nums { + heap.Push(h, i) + } + + for k > 0 { + i := heap.Pop(h).(int) + nums[i] *= multiplier + heap.Push(h, i) + k-- + } + + return nums +} + +type hp struct { + sort.IntSlice + nums []int +} + +func (h *hp) Less(i, j int) bool { + if h.nums[h.IntSlice[i]] == h.nums[h.IntSlice[j]] { + return h.IntSlice[i] < h.IntSlice[j] + } + return h.nums[h.IntSlice[i]] < h.nums[h.IntSlice[j]] +} + +func (h *hp) Pop() any { + old := h.IntSlice + n := len(old) + x := old[n-1] + h.IntSlice = old[:n-1] + return x +} + +func (h *hp) Push(x any) { + h.IntSlice = append(h.IntSlice, x.(int)) +} +``` +#### TypeScript + +```ts +function getFinalState(nums: number[], k: number, multiplier: number): number[] { + const pq = new PriorityQueue({ + compare: (i, j) => (nums[i] === nums[j] ? i - j : nums[i] - nums[j]), + }); + for (let i = 0; i < nums.length; ++i) { + pq.enqueue(i); + } + while (k--) { + const i = pq.dequeue()!; + nums[i] *= multiplier; + pq.enqueue(i); + } + return nums; +} ``` diff --git a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.cpp b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.cpp new file mode 100644 index 0000000000000..a08ddb27e2e13 --- /dev/null +++ b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.cpp @@ -0,0 +1,22 @@ +class Solution { +public: + vector getFinalState(vector& nums, int k, int multiplier) { + auto cmp = [&nums](int i, int j) { + return nums[i] == nums[j] ? i > j : nums[i] > nums[j]; + }; + priority_queue, decltype(cmp)> pq(cmp); + + for (int i = 0; i < nums.size(); ++i) { + pq.push(i); + } + + while (k--) { + int i = pq.top(); + pq.pop(); + nums[i] *= multiplier; + pq.push(i); + } + + return nums; + } +}; diff --git a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.go b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.go new file mode 100644 index 0000000000000..d571f8a1a4f45 --- /dev/null +++ b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.go @@ -0,0 +1,39 @@ +func getFinalState(nums []int, k int, multiplier int) []int { + h := &hp{nums: nums} + for i := range nums { + heap.Push(h, i) + } + + for k > 0 { + i := heap.Pop(h).(int) + nums[i] *= multiplier + heap.Push(h, i) + k-- + } + + return nums +} + +type hp struct { + sort.IntSlice + nums []int +} + +func (h *hp) Less(i, j int) bool { + if h.nums[h.IntSlice[i]] == h.nums[h.IntSlice[j]] { + return h.IntSlice[i] < h.IntSlice[j] + } + return h.nums[h.IntSlice[i]] < h.nums[h.IntSlice[j]] +} + +func (h *hp) Pop() any { + old := h.IntSlice + n := len(old) + x := old[n-1] + h.IntSlice = old[:n-1] + return x +} + +func (h *hp) Push(x any) { + h.IntSlice = append(h.IntSlice, x.(int)) +} diff --git a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.java b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.java new file mode 100644 index 0000000000000..2c056ff309631 --- /dev/null +++ b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.java @@ -0,0 +1,15 @@ +class Solution { + public int[] getFinalState(int[] nums, int k, int multiplier) { + PriorityQueue pq + = new PriorityQueue<>((i, j) -> nums[i] - nums[j] == 0 ? i - j : nums[i] - nums[j]); + for (int i = 0; i < nums.length; i++) { + pq.offer(i); + } + while (k-- > 0) { + int i = pq.poll(); + nums[i] *= multiplier; + pq.offer(i); + } + return nums; + } +} diff --git a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.py b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.py new file mode 100644 index 0000000000000..3c925c3b775bc --- /dev/null +++ b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.py @@ -0,0 +1,9 @@ +class Solution: + def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]: + pq = [(x, i) for i, x in enumerate(nums)] + heapify(pq) + for _ in range(k): + _, i = heappop(pq) + nums[i] *= multiplier + heappush(pq, (nums[i], i)) + return nums diff --git a/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.ts b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.ts new file mode 100644 index 0000000000000..3d934a1f2e573 --- /dev/null +++ b/solution/3200-3299/3264.Final Array State After K Multiplication Operations I/Solution.ts @@ -0,0 +1,14 @@ +function getFinalState(nums: number[], k: number, multiplier: number): number[] { + const pq = new PriorityQueue({ + compare: (i, j) => (nums[i] === nums[j] ? i - j : nums[i] - nums[j]), + }); + for (let i = 0; i < nums.length; ++i) { + pq.enqueue(i); + } + while (k--) { + const i = pq.dequeue()!; + nums[i] *= multiplier; + pq.enqueue(i); + } + return nums; +} diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md b/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md index ee9394cac3312..e4c376b5c500a 100644 --- a/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md @@ -84,32 +84,165 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3200-3299/3265.Co -### 方法一 +### 方法一:排序 + 枚举 + +我们可以枚举每一个数,然后对于每一个数,我们可以枚举每一对不同的数位,然后交换这两个数位,得到一个新的数,记录到一个哈希表 $s$ 中,表示这个数至多进行一次交换后的所有可能的数。然后计算前面枚举过的数中有多少个数在哈希表 $s$ 中,累加到答案中。接下来,我们将当前枚举的数加入到哈希表 $\textit{cnt}$ 中,表示当前枚举的数的个数。 + +这样枚举,会少统计一些数对,比如 $[100, 1]$,因为 $100$ 交换后的数是 $1$,而此前枚举过数不包含 $1$,因此会少统计一些数对。我们只需要在枚举之前,将数组排序,即可解决这个问题。 + +时间复杂度 $O(n \times (\log n + \log^3 M))$,空间复杂度 $O(n + \log^2 M)$。其中 $n$ 是数组 $\textit{nums}$ 的长度,而 $M$ 是数组 $\textit{nums}$ 中的最大值。 #### Python3 ```python - +class Solution: + def countPairs(self, nums: List[int]) -> int: + nums.sort() + ans = 0 + cnt = defaultdict(int) + for x in nums: + vis = {x} + s = list(str(x)) + for j in range(len(s)): + for i in range(j): + s[i], s[j] = s[j], s[i] + vis.add(int("".join(s))) + s[i], s[j] = s[j], s[i] + ans += sum(cnt[x] for x in vis) + cnt[x] += 1 + return ans ``` #### Java ```java - +class Solution { + public int countPairs(int[] nums) { + Arrays.sort(nums); + int ans = 0; + Map cnt = new HashMap<>(); + for (int x : nums) { + Set vis = new HashSet<>(); + vis.add(x); + char[] s = String.valueOf(x).toCharArray(); + for (int j = 0; j < s.length; ++j) { + for (int i = 0; i < j; ++i) { + swap(s, i, j); + vis.add(Integer.parseInt(String.valueOf(s))); + swap(s, i, j); + } + } + for (int y : vis) { + ans += cnt.getOrDefault(y, 0); + } + cnt.merge(x, 1, Integer::sum); + } + return ans; + } + + private void swap(char[] s, int i, int j) { + char t = s[i]; + s[i] = s[j]; + s[j] = t; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int countPairs(vector& nums) { + sort(nums.begin(), nums.end()); + int ans = 0; + unordered_map cnt; + + for (int x : nums) { + unordered_set vis = {x}; + string s = to_string(x); + + for (int j = 0; j < s.length(); ++j) { + for (int i = 0; i < j; ++i) { + swap(s[i], s[j]); + vis.insert(stoi(s)); + swap(s[i], s[j]); + } + } + + for (int y : vis) { + ans += cnt[y]; + } + cnt[x]++; + } + + return ans; + } +}; ``` #### Go ```go +func countPairs(nums []int) (ans int) { + sort.Ints(nums) + cnt := make(map[int]int) + + for _, x := range nums { + vis := make(map[int]struct{}) + vis[x] = struct{}{} + s := []rune(strconv.Itoa(x)) + + for j := 0; j < len(s); j++ { + for i := 0; i < j; i++ { + s[i], s[j] = s[j], s[i] + y, _ := strconv.Atoi(string(s)) + vis[y] = struct{}{} + s[i], s[j] = s[j], s[i] + } + } + + for y := range vis { + ans += cnt[y] + } + cnt[x]++ + } + + return +} +``` +#### TypeScript + +```ts +function countPairs(nums: number[]): number { + nums.sort((a, b) => a - b); + let ans = 0; + const cnt = new Map(); + + for (const x of nums) { + const vis = new Set(); + vis.add(x); + const s = x.toString().split(''); + + for (let j = 0; j < s.length; j++) { + for (let i = 0; i < j; i++) { + [s[i], s[j]] = [s[j], s[i]]; + vis.add(+s.join('')); + [s[i], s[j]] = [s[j], s[i]]; + } + } + + for (const y of vis) { + ans += cnt.get(y) || 0; + } + cnt.set(x, (cnt.get(x) || 0) + 1); + } + + return ans; +} ``` diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/README_EN.md b/solution/3200-3299/3265.Count Almost Equal Pairs I/README_EN.md index 1f6607ee4a2d9..bf19be12d55e6 100644 --- a/solution/3200-3299/3265.Count Almost Equal Pairs I/README_EN.md +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/README_EN.md @@ -82,32 +82,165 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3200-3299/3265.Co -### Solution 1 +### Solution 1: Sorting + Enumeration + +We can enumerate each number, and for each number, we can enumerate each pair of different digits, then swap these two digits to get a new number. We record this new number in a hash table $s$, representing all possible numbers after at most one swap. Then, we count how many numbers previously enumerated are in the hash table $s$ and add this count to the answer. Next, we add the currently enumerated number to the hash table $\textit{cnt}$, representing the count of the current number. + +This enumeration method may miss some pairs, such as $[100, 1]$, because the number obtained by swapping digits in $100$ is $1$, and previously enumerated numbers do not include $1$, thus missing some pairs. We can solve this problem by sorting the array before enumeration. + +The time complexity is $O(n \times (\log n + \log^3 M))$, and the space complexity is $O(n + \log^2 M)$. Here, $n$ is the length of the array $\textit{nums}$, and $M$ is the maximum value in the array $\textit{nums}$. #### Python3 ```python - +class Solution: + def countPairs(self, nums: List[int]) -> int: + nums.sort() + ans = 0 + cnt = defaultdict(int) + for x in nums: + vis = {x} + s = list(str(x)) + for j in range(len(s)): + for i in range(j): + s[i], s[j] = s[j], s[i] + vis.add(int("".join(s))) + s[i], s[j] = s[j], s[i] + ans += sum(cnt[x] for x in vis) + cnt[x] += 1 + return ans ``` #### Java ```java - +class Solution { + public int countPairs(int[] nums) { + Arrays.sort(nums); + int ans = 0; + Map cnt = new HashMap<>(); + for (int x : nums) { + Set vis = new HashSet<>(); + vis.add(x); + char[] s = String.valueOf(x).toCharArray(); + for (int j = 0; j < s.length; ++j) { + for (int i = 0; i < j; ++i) { + swap(s, i, j); + vis.add(Integer.parseInt(String.valueOf(s))); + swap(s, i, j); + } + } + for (int y : vis) { + ans += cnt.getOrDefault(y, 0); + } + cnt.merge(x, 1, Integer::sum); + } + return ans; + } + + private void swap(char[] s, int i, int j) { + char t = s[i]; + s[i] = s[j]; + s[j] = t; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int countPairs(vector& nums) { + sort(nums.begin(), nums.end()); + int ans = 0; + unordered_map cnt; + + for (int x : nums) { + unordered_set vis = {x}; + string s = to_string(x); + + for (int j = 0; j < s.length(); ++j) { + for (int i = 0; i < j; ++i) { + swap(s[i], s[j]); + vis.insert(stoi(s)); + swap(s[i], s[j]); + } + } + + for (int y : vis) { + ans += cnt[y]; + } + cnt[x]++; + } + + return ans; + } +}; ``` #### Go ```go +func countPairs(nums []int) (ans int) { + sort.Ints(nums) + cnt := make(map[int]int) + + for _, x := range nums { + vis := make(map[int]struct{}) + vis[x] = struct{}{} + s := []rune(strconv.Itoa(x)) + + for j := 0; j < len(s); j++ { + for i := 0; i < j; i++ { + s[i], s[j] = s[j], s[i] + y, _ := strconv.Atoi(string(s)) + vis[y] = struct{}{} + s[i], s[j] = s[j], s[i] + } + } + + for y := range vis { + ans += cnt[y] + } + cnt[x]++ + } + + return +} +``` +#### TypeScript + +```ts +function countPairs(nums: number[]): number { + nums.sort((a, b) => a - b); + let ans = 0; + const cnt = new Map(); + + for (const x of nums) { + const vis = new Set(); + vis.add(x); + const s = x.toString().split(''); + + for (let j = 0; j < s.length; j++) { + for (let i = 0; i < j; i++) { + [s[i], s[j]] = [s[j], s[i]]; + vis.add(+s.join('')); + [s[i], s[j]] = [s[j], s[i]]; + } + } + + for (const y of vis) { + ans += cnt.get(y) || 0; + } + cnt.set(x, (cnt.get(x) || 0) + 1); + } + + return ans; +} ``` diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.cpp b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.cpp new file mode 100644 index 0000000000000..5f7e215a5ed2f --- /dev/null +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + int countPairs(vector& nums) { + sort(nums.begin(), nums.end()); + int ans = 0; + unordered_map cnt; + + for (int x : nums) { + unordered_set vis = {x}; + string s = to_string(x); + + for (int j = 0; j < s.length(); ++j) { + for (int i = 0; i < j; ++i) { + swap(s[i], s[j]); + vis.insert(stoi(s)); + swap(s[i], s[j]); + } + } + + for (int y : vis) { + ans += cnt[y]; + } + cnt[x]++; + } + + return ans; + } +}; diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.go b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.go new file mode 100644 index 0000000000000..2ad01b8669c0e --- /dev/null +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.go @@ -0,0 +1,26 @@ +func countPairs(nums []int) (ans int) { + sort.Ints(nums) + cnt := make(map[int]int) + + for _, x := range nums { + vis := make(map[int]struct{}) + vis[x] = struct{}{} + s := []rune(strconv.Itoa(x)) + + for j := 0; j < len(s); j++ { + for i := 0; i < j; i++ { + s[i], s[j] = s[j], s[i] + y, _ := strconv.Atoi(string(s)) + vis[y] = struct{}{} + s[i], s[j] = s[j], s[i] + } + } + + for y := range vis { + ans += cnt[y] + } + cnt[x]++ + } + + return +} diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.java b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.java new file mode 100644 index 0000000000000..fb51b344e2bfc --- /dev/null +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.java @@ -0,0 +1,30 @@ +class Solution { + public int countPairs(int[] nums) { + Arrays.sort(nums); + int ans = 0; + Map cnt = new HashMap<>(); + for (int x : nums) { + Set vis = new HashSet<>(); + vis.add(x); + char[] s = String.valueOf(x).toCharArray(); + for (int j = 0; j < s.length; ++j) { + for (int i = 0; i < j; ++i) { + swap(s, i, j); + vis.add(Integer.parseInt(String.valueOf(s))); + swap(s, i, j); + } + } + for (int y : vis) { + ans += cnt.getOrDefault(y, 0); + } + cnt.merge(x, 1, Integer::sum); + } + return ans; + } + + private void swap(char[] s, int i, int j) { + char t = s[i]; + s[i] = s[j]; + s[j] = t; + } +} diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.py b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.py new file mode 100644 index 0000000000000..1806c7a3281a4 --- /dev/null +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.py @@ -0,0 +1,16 @@ +class Solution: + def countPairs(self, nums: List[int]) -> int: + nums.sort() + ans = 0 + cnt = defaultdict(int) + for x in nums: + vis = {x} + s = list(str(x)) + for j in range(len(s)): + for i in range(j): + s[i], s[j] = s[j], s[i] + vis.add(int("".join(s))) + s[i], s[j] = s[j], s[i] + ans += sum(cnt[x] for x in vis) + cnt[x] += 1 + return ans diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.ts b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.ts new file mode 100644 index 0000000000000..cae50c5231c89 --- /dev/null +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/Solution.ts @@ -0,0 +1,26 @@ +function countPairs(nums: number[]): number { + nums.sort((a, b) => a - b); + let ans = 0; + const cnt = new Map(); + + for (const x of nums) { + const vis = new Set(); + vis.add(x); + const s = x.toString().split(''); + + for (let j = 0; j < s.length; j++) { + for (let i = 0; i < j; i++) { + [s[i], s[j]] = [s[j], s[i]]; + vis.add(+s.join('')); + [s[i], s[j]] = [s[j], s[i]]; + } + } + + for (const y of vis) { + ans += cnt.get(y) || 0; + } + cnt.set(x, (cnt.get(x) || 0) + 1); + } + + return ans; +} From 96438b40fabe8285cb71b047754528789677be61 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Mon, 26 Aug 2024 08:59:45 +0800 Subject: [PATCH 2/4] feat: add solutions to lc problem: No.3267 No.3267.Count Almost Equal Pairs II --- .../0690.Employee Importance/README.md | 2 + .../0690.Employee Importance/README_EN.md | 2 + .../3265.Count Almost Equal Pairs I/README.md | 2 +- .../README.md | 176 +++++++++++++++++- .../README_EN.md | 176 +++++++++++++++++- .../Solution.cpp | 35 ++++ .../Solution.go | 34 ++++ .../Solution.java | 37 ++++ .../Solution.py | 22 +++ .../Solution.ts | 33 ++++ 10 files changed, 510 insertions(+), 9 deletions(-) create mode 100644 solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.cpp create mode 100644 solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.go create mode 100644 solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.java create mode 100644 solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.py create mode 100644 solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.ts diff --git a/solution/0600-0699/0690.Employee Importance/README.md b/solution/0600-0699/0690.Employee Importance/README.md index 8857d26a2a465..dc7f3aab0c8a2 100644 --- a/solution/0600-0699/0690.Employee Importance/README.md +++ b/solution/0600-0699/0690.Employee Importance/README.md @@ -172,6 +172,8 @@ public: }; ``` +#### Go + ```go /** * Definition for Employee. diff --git a/solution/0600-0699/0690.Employee Importance/README_EN.md b/solution/0600-0699/0690.Employee Importance/README_EN.md index 5e6a1adf6773b..2ee3ac9f9cea8 100644 --- a/solution/0600-0699/0690.Employee Importance/README_EN.md +++ b/solution/0600-0699/0690.Employee Importance/README_EN.md @@ -165,6 +165,8 @@ public: }; ``` +#### Go + ```go /** * Definition for Employee. diff --git a/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md b/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md index e4c376b5c500a..e092294652508 100644 --- a/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md +++ b/solution/3200-3299/3265.Count Almost Equal Pairs I/README.md @@ -86,7 +86,7 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3200-3299/3265.Co ### 方法一:排序 + 枚举 -我们可以枚举每一个数,然后对于每一个数,我们可以枚举每一对不同的数位,然后交换这两个数位,得到一个新的数,记录到一个哈希表 $s$ 中,表示这个数至多进行一次交换后的所有可能的数。然后计算前面枚举过的数中有多少个数在哈希表 $s$ 中,累加到答案中。接下来,我们将当前枚举的数加入到哈希表 $\textit{cnt}$ 中,表示当前枚举的数的个数。 +我们可以枚举每一个数,然后对于每一个数,我们可以枚举每一对不同的数位,然后交换这两个数位,得到一个新的数,记录到一个哈希表 $\textit{vis}$ 中,表示这个数至多进行一次交换后的所有可能的数。然后计算前面枚举过的数中有多少个数在哈希表 $\textit{vis}$ 中,累加到答案中。接下来,我们将当前枚举的数加入到哈希表 $\textit{cnt}$ 中,表示当前枚举的数的个数。 这样枚举,会少统计一些数对,比如 $[100, 1]$,因为 $100$ 交换后的数是 $1$,而此前枚举过数不包含 $1$,因此会少统计一些数对。我们只需要在枚举之前,将数组排序,即可解决这个问题。 diff --git a/solution/3200-3299/3267.Count Almost Equal Pairs II/README.md b/solution/3200-3299/3267.Count Almost Equal Pairs II/README.md index 715d87f6e8f68..f9c8bca7706f6 100644 --- a/solution/3200-3299/3267.Count Almost Equal Pairs II/README.md +++ b/solution/3200-3299/3267.Count Almost Equal Pairs II/README.md @@ -82,32 +82,200 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3200-3299/3267.Co -### 方法一 +### 方法一:排序 + 枚举 + +我们可以枚举每一个数,然后对于每一个数,我们可以枚举每一对不同的数位,然后交换这两个数位,得到一个新的数,记录到一个哈希表 $\textit{vis}$ 中,表示这个数至多进行一次交换后的所有可能的数,然后继续枚举每一对不同的数位,交换这两个数位,得到一个新的数,记录到哈希表 $\textit{vis}$ 中,表示这个数至多进行两次交换后的所有可能的数。 + +这样枚举,会少统计一些数对,比如 $[100, 1]$,因为 $100$ 交换后的数是 $1$,而此前枚举过数不包含 $1$,因此会少统计一些数对。我们只需要在枚举之前,将数组排序,即可解决这个问题。 + +时间复杂度 $O(n \times (\log n + \log^5 M))$,空间复杂度 $O(n + \log^4 M)$。其中 $n$ 是数组 $\textit{nums}$ 的长度,而 $M$ 是数组 $\textit{nums}$ 中的最大值。 #### Python3 ```python - +class Solution: + def countPairs(self, nums: List[int]) -> int: + nums.sort() + ans = 0 + cnt = defaultdict(int) + for x in nums: + vis = {x} + s = list(str(x)) + m = len(s) + for j in range(m): + for i in range(j): + s[i], s[j] = s[j], s[i] + vis.add(int("".join(s))) + for q in range(i + 1, m): + for p in range(i + 1, q): + s[p], s[q] = s[q], s[p] + vis.add(int("".join(s))) + s[p], s[q] = s[q], s[p] + s[i], s[j] = s[j], s[i] + ans += sum(cnt[x] for x in vis) + cnt[x] += 1 + return ans ``` #### Java ```java - +class Solution { + public int countPairs(int[] nums) { + Arrays.sort(nums); + int ans = 0; + Map cnt = new HashMap<>(); + for (int x : nums) { + Set vis = new HashSet<>(); + vis.add(x); + char[] s = String.valueOf(x).toCharArray(); + for (int j = 0; j < s.length; ++j) { + for (int i = 0; i < j; ++i) { + swap(s, i, j); + vis.add(Integer.parseInt(String.valueOf(s))); + for (int q = i; q < s.length; ++q) { + for (int p = i; p < q; ++p) { + swap(s, p, q); + vis.add(Integer.parseInt(String.valueOf(s))); + swap(s, p, q); + } + } + swap(s, i, j); + } + } + for (int y : vis) { + ans += cnt.getOrDefault(y, 0); + } + cnt.merge(x, 1, Integer::sum); + } + return ans; + } + + private void swap(char[] s, int i, int j) { + char t = s[i]; + s[i] = s[j]; + s[j] = t; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int countPairs(vector& nums) { + sort(nums.begin(), nums.end()); + int ans = 0; + unordered_map cnt; + + for (int x : nums) { + unordered_set vis = {x}; + string s = to_string(x); + + for (int j = 0; j < s.length(); ++j) { + for (int i = 0; i < j; ++i) { + swap(s[i], s[j]); + vis.insert(stoi(s)); + for (int q = i + 1; q < s.length(); ++q) { + for (int p = i + 1; p < q; ++p) { + swap(s[p], s[q]); + vis.insert(stoi(s)); + swap(s[p], s[q]); + } + } + swap(s[i], s[j]); + } + } + + for (int y : vis) { + ans += cnt[y]; + } + cnt[x]++; + } + + return ans; + } +}; ``` #### Go ```go +func countPairs(nums []int) (ans int) { + sort.Ints(nums) + cnt := make(map[int]int) + + for _, x := range nums { + vis := make(map[int]struct{}) + vis[x] = struct{}{} + s := []rune(strconv.Itoa(x)) + + for j := 0; j < len(s); j++ { + for i := 0; i < j; i++ { + s[i], s[j] = s[j], s[i] + y, _ := strconv.Atoi(string(s)) + vis[y] = struct{}{} + for q := i + 1; q < len(s); q++ { + for p := i + 1; p < q; p++ { + s[p], s[q] = s[q], s[p] + z, _ := strconv.Atoi(string(s)) + vis[z] = struct{}{} + s[p], s[q] = s[q], s[p] + } + } + s[i], s[j] = s[j], s[i] + } + } + + for y := range vis { + ans += cnt[y] + } + cnt[x]++ + } + + return +} +``` +#### TypeScript + +```ts +function countPairs(nums: number[]): number { + nums.sort((a, b) => a - b); + let ans = 0; + const cnt = new Map(); + + for (const x of nums) { + const vis = new Set(); + vis.add(x); + const s = x.toString().split(''); + + for (let j = 0; j < s.length; j++) { + for (let i = 0; i < j; i++) { + [s[i], s[j]] = [s[j], s[i]]; + vis.add(+s.join('')); + for (let q = i + 1; q < s.length; ++q) { + for (let p = i + 1; p < q; ++p) { + [s[p], s[q]] = [s[q], s[p]]; + vis.add(+s.join('')); + [s[p], s[q]] = [s[q], s[p]]; + } + } + [s[i], s[j]] = [s[j], s[i]]; + } + } + + for (const y of vis) { + ans += cnt.get(y) || 0; + } + cnt.set(x, (cnt.get(x) || 0) + 1); + } + + return ans; +} ``` diff --git a/solution/3200-3299/3267.Count Almost Equal Pairs II/README_EN.md b/solution/3200-3299/3267.Count Almost Equal Pairs II/README_EN.md index 0cd83379cf1fc..d7e7e304dd3f3 100644 --- a/solution/3200-3299/3267.Count Almost Equal Pairs II/README_EN.md +++ b/solution/3200-3299/3267.Count Almost Equal Pairs II/README_EN.md @@ -80,32 +80,200 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3200-3299/3267.Co -### Solution 1 +### Solution 1: Sorting + Enumeration + +We can enumerate each number, and for each number, we can enumerate each pair of different digits, then swap these two digits to get a new number. Record this new number in a hash table $\textit{vis}$, representing all possible numbers after at most one swap. Then continue to enumerate each pair of different digits, swap these two digits to get a new number, and record it in the hash table $\textit{vis}$, representing all possible numbers after at most two swaps. + +This enumeration may miss some pairs of numbers, such as $[100, 1]$, because the number obtained after swapping $100$ is $1$, and the previously enumerated numbers do not include $1$, so some pairs of numbers will be missed. We only need to sort the array before enumeration to solve this problem. + +The time complexity is $O(n \times (\log n + \log^5 M))$, and the space complexity is $O(n + \log^4 M)$. Here, $n$ is the length of the array $\textit{nums}$, and $M$ is the maximum value in the array $\textit{nums}$. #### Python3 ```python - +class Solution: + def countPairs(self, nums: List[int]) -> int: + nums.sort() + ans = 0 + cnt = defaultdict(int) + for x in nums: + vis = {x} + s = list(str(x)) + m = len(s) + for j in range(m): + for i in range(j): + s[i], s[j] = s[j], s[i] + vis.add(int("".join(s))) + for q in range(i + 1, m): + for p in range(i + 1, q): + s[p], s[q] = s[q], s[p] + vis.add(int("".join(s))) + s[p], s[q] = s[q], s[p] + s[i], s[j] = s[j], s[i] + ans += sum(cnt[x] for x in vis) + cnt[x] += 1 + return ans ``` #### Java ```java - +class Solution { + public int countPairs(int[] nums) { + Arrays.sort(nums); + int ans = 0; + Map cnt = new HashMap<>(); + for (int x : nums) { + Set vis = new HashSet<>(); + vis.add(x); + char[] s = String.valueOf(x).toCharArray(); + for (int j = 0; j < s.length; ++j) { + for (int i = 0; i < j; ++i) { + swap(s, i, j); + vis.add(Integer.parseInt(String.valueOf(s))); + for (int q = i; q < s.length; ++q) { + for (int p = i; p < q; ++p) { + swap(s, p, q); + vis.add(Integer.parseInt(String.valueOf(s))); + swap(s, p, q); + } + } + swap(s, i, j); + } + } + for (int y : vis) { + ans += cnt.getOrDefault(y, 0); + } + cnt.merge(x, 1, Integer::sum); + } + return ans; + } + + private void swap(char[] s, int i, int j) { + char t = s[i]; + s[i] = s[j]; + s[j] = t; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int countPairs(vector& nums) { + sort(nums.begin(), nums.end()); + int ans = 0; + unordered_map cnt; + + for (int x : nums) { + unordered_set vis = {x}; + string s = to_string(x); + + for (int j = 0; j < s.length(); ++j) { + for (int i = 0; i < j; ++i) { + swap(s[i], s[j]); + vis.insert(stoi(s)); + for (int q = i + 1; q < s.length(); ++q) { + for (int p = i + 1; p < q; ++p) { + swap(s[p], s[q]); + vis.insert(stoi(s)); + swap(s[p], s[q]); + } + } + swap(s[i], s[j]); + } + } + + for (int y : vis) { + ans += cnt[y]; + } + cnt[x]++; + } + + return ans; + } +}; ``` #### Go ```go +func countPairs(nums []int) (ans int) { + sort.Ints(nums) + cnt := make(map[int]int) + + for _, x := range nums { + vis := make(map[int]struct{}) + vis[x] = struct{}{} + s := []rune(strconv.Itoa(x)) + + for j := 0; j < len(s); j++ { + for i := 0; i < j; i++ { + s[i], s[j] = s[j], s[i] + y, _ := strconv.Atoi(string(s)) + vis[y] = struct{}{} + for q := i + 1; q < len(s); q++ { + for p := i + 1; p < q; p++ { + s[p], s[q] = s[q], s[p] + z, _ := strconv.Atoi(string(s)) + vis[z] = struct{}{} + s[p], s[q] = s[q], s[p] + } + } + s[i], s[j] = s[j], s[i] + } + } + + for y := range vis { + ans += cnt[y] + } + cnt[x]++ + } + + return +} +``` +#### TypeScript + +```ts +function countPairs(nums: number[]): number { + nums.sort((a, b) => a - b); + let ans = 0; + const cnt = new Map(); + + for (const x of nums) { + const vis = new Set(); + vis.add(x); + const s = x.toString().split(''); + + for (let j = 0; j < s.length; j++) { + for (let i = 0; i < j; i++) { + [s[i], s[j]] = [s[j], s[i]]; + vis.add(+s.join('')); + for (let q = i + 1; q < s.length; ++q) { + for (let p = i + 1; p < q; ++p) { + [s[p], s[q]] = [s[q], s[p]]; + vis.add(+s.join('')); + [s[p], s[q]] = [s[q], s[p]]; + } + } + [s[i], s[j]] = [s[j], s[i]]; + } + } + + for (const y of vis) { + ans += cnt.get(y) || 0; + } + cnt.set(x, (cnt.get(x) || 0) + 1); + } + + return ans; +} ``` diff --git a/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.cpp b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.cpp new file mode 100644 index 0000000000000..b546b0f6d6164 --- /dev/null +++ b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.cpp @@ -0,0 +1,35 @@ +class Solution { +public: + int countPairs(vector& nums) { + sort(nums.begin(), nums.end()); + int ans = 0; + unordered_map cnt; + + for (int x : nums) { + unordered_set vis = {x}; + string s = to_string(x); + + for (int j = 0; j < s.length(); ++j) { + for (int i = 0; i < j; ++i) { + swap(s[i], s[j]); + vis.insert(stoi(s)); + for (int q = i + 1; q < s.length(); ++q) { + for (int p = i + 1; p < q; ++p) { + swap(s[p], s[q]); + vis.insert(stoi(s)); + swap(s[p], s[q]); + } + } + swap(s[i], s[j]); + } + } + + for (int y : vis) { + ans += cnt[y]; + } + cnt[x]++; + } + + return ans; + } +}; diff --git a/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.go b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.go new file mode 100644 index 0000000000000..d0d763d17e4c1 --- /dev/null +++ b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.go @@ -0,0 +1,34 @@ +func countPairs(nums []int) (ans int) { + sort.Ints(nums) + cnt := make(map[int]int) + + for _, x := range nums { + vis := make(map[int]struct{}) + vis[x] = struct{}{} + s := []rune(strconv.Itoa(x)) + + for j := 0; j < len(s); j++ { + for i := 0; i < j; i++ { + s[i], s[j] = s[j], s[i] + y, _ := strconv.Atoi(string(s)) + vis[y] = struct{}{} + for q := i + 1; q < len(s); q++ { + for p := i + 1; p < q; p++ { + s[p], s[q] = s[q], s[p] + z, _ := strconv.Atoi(string(s)) + vis[z] = struct{}{} + s[p], s[q] = s[q], s[p] + } + } + s[i], s[j] = s[j], s[i] + } + } + + for y := range vis { + ans += cnt[y] + } + cnt[x]++ + } + + return +} diff --git a/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.java b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.java new file mode 100644 index 0000000000000..dbfb7c2f3baf9 --- /dev/null +++ b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.java @@ -0,0 +1,37 @@ +class Solution { + public int countPairs(int[] nums) { + Arrays.sort(nums); + int ans = 0; + Map cnt = new HashMap<>(); + for (int x : nums) { + Set vis = new HashSet<>(); + vis.add(x); + char[] s = String.valueOf(x).toCharArray(); + for (int j = 0; j < s.length; ++j) { + for (int i = 0; i < j; ++i) { + swap(s, i, j); + vis.add(Integer.parseInt(String.valueOf(s))); + for (int q = i; q < s.length; ++q) { + for (int p = i; p < q; ++p) { + swap(s, p, q); + vis.add(Integer.parseInt(String.valueOf(s))); + swap(s, p, q); + } + } + swap(s, i, j); + } + } + for (int y : vis) { + ans += cnt.getOrDefault(y, 0); + } + cnt.merge(x, 1, Integer::sum); + } + return ans; + } + + private void swap(char[] s, int i, int j) { + char t = s[i]; + s[i] = s[j]; + s[j] = t; + } +} diff --git a/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.py b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.py new file mode 100644 index 0000000000000..e1dd1ad4823f1 --- /dev/null +++ b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.py @@ -0,0 +1,22 @@ +class Solution: + def countPairs(self, nums: List[int]) -> int: + nums.sort() + ans = 0 + cnt = defaultdict(int) + for x in nums: + vis = {x} + s = list(str(x)) + m = len(s) + for j in range(m): + for i in range(j): + s[i], s[j] = s[j], s[i] + vis.add(int("".join(s))) + for q in range(i + 1, m): + for p in range(i + 1, q): + s[p], s[q] = s[q], s[p] + vis.add(int("".join(s))) + s[p], s[q] = s[q], s[p] + s[i], s[j] = s[j], s[i] + ans += sum(cnt[x] for x in vis) + cnt[x] += 1 + return ans diff --git a/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.ts b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.ts new file mode 100644 index 0000000000000..1dd7a78db2738 --- /dev/null +++ b/solution/3200-3299/3267.Count Almost Equal Pairs II/Solution.ts @@ -0,0 +1,33 @@ +function countPairs(nums: number[]): number { + nums.sort((a, b) => a - b); + let ans = 0; + const cnt = new Map(); + + for (const x of nums) { + const vis = new Set(); + vis.add(x); + const s = x.toString().split(''); + + for (let j = 0; j < s.length; j++) { + for (let i = 0; i < j; i++) { + [s[i], s[j]] = [s[j], s[i]]; + vis.add(+s.join('')); + for (let q = i + 1; q < s.length; ++q) { + for (let p = i + 1; p < q; ++p) { + [s[p], s[q]] = [s[q], s[p]]; + vis.add(+s.join('')); + [s[p], s[q]] = [s[q], s[p]]; + } + } + [s[i], s[j]] = [s[j], s[i]]; + } + } + + for (const y of vis) { + ans += cnt.get(y) || 0; + } + cnt.set(x, (cnt.get(x) || 0) + 1); + } + + return ans; +} From 41303877fd798cac94eff10a0e58c225d74c49a5 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Mon, 26 Aug 2024 13:09:35 +0800 Subject: [PATCH 3/4] feat: update lc problems --- .../0626.Exchange Seats/README_EN.md | 2 +- .../1052.Grumpy Bookstore Owner/README_EN.md | 36 ++-- .../README_EN.md | 4 +- .../README_EN.md | 8 +- .../images/problem1334example0.png | Bin 0 -> 124293 bytes .../images/problem1334example1.png | Bin 0 -> 84097 bytes .../1300-1399/1341.Movie Rating/README_EN.md | 5 +- .../1462.Course Schedule IV/README_EN.md | 4 +- .../README_EN.md | 2 +- .../README.md | 4 +- .../README_EN.md | 4 +- .../Solution.js | 2 +- .../Solution.ts | 2 +- .../README_EN.md | 2 +- .../README_EN.md | 18 +- .../images/output-onlinepngtools-1.png | Bin 0 -> 13044 bytes .../images/output-onlinepngtools.png | Bin 0 -> 12794 bytes .../README.md | 184 +++++++++++++++++- .../README_EN.md | 184 +++++++++++++++++- .../Solution.cpp | 57 ++++++ .../Solution.go | 52 +++++ .../Solution.java | 38 ++++ .../Solution.py | 17 ++ solution/contest.json | 2 +- 24 files changed, 575 insertions(+), 52 deletions(-) create mode 100644 solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/images/problem1334example0.png create mode 100644 solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/images/problem1334example1.png create mode 100644 solution/3100-3199/3112.Minimum Time to Visit Disappearing Nodes/images/output-onlinepngtools-1.png create mode 100644 solution/3100-3199/3112.Minimum Time to Visit Disappearing Nodes/images/output-onlinepngtools.png create mode 100644 solution/3200-3299/3266.Final Array State After K Multiplication Operations II/Solution.cpp create mode 100644 solution/3200-3299/3266.Final Array State After K Multiplication Operations II/Solution.go create mode 100644 solution/3200-3299/3266.Final Array State After K Multiplication Operations II/Solution.java create mode 100644 solution/3200-3299/3266.Final Array State After K Multiplication Operations II/Solution.py diff --git a/solution/0600-0699/0626.Exchange Seats/README_EN.md b/solution/0600-0699/0626.Exchange Seats/README_EN.md index d3e57efc6fcf7..7294bad1c7d1a 100644 --- a/solution/0600-0699/0626.Exchange Seats/README_EN.md +++ b/solution/0600-0699/0626.Exchange Seats/README_EN.md @@ -27,7 +27,7 @@ tags: +-------------+---------+ id is the primary key (unique value) column for this table. Each row of this table indicates the name and the ID of a student. -id is a continuous increment. +The ID sequence always starts from 1 and increments continuously.

 

diff --git a/solution/1000-1099/1052.Grumpy Bookstore Owner/README_EN.md b/solution/1000-1099/1052.Grumpy Bookstore Owner/README_EN.md index 68a5c920b0c3c..d87b1856b8556 100644 --- a/solution/1000-1099/1052.Grumpy Bookstore Owner/README_EN.md +++ b/solution/1000-1099/1052.Grumpy Bookstore Owner/README_EN.md @@ -19,32 +19,38 @@ tags: -

There is a bookstore owner that has a store open for n minutes. Every minute, some number of customers enter the store. You are given an integer array customers of length n where customers[i] is the number of the customer that enters the store at the start of the ith minute and all those customers leave after the end of that minute.

+

There is a bookstore owner that has a store open for n minutes. You are given an integer array customers of length n where customers[i] is the number of the customers that enter the store at the start of the ith minute and all those customers leave after the end of that minute.

-

On some minutes, the bookstore owner is grumpy. You are given a binary array grumpy where grumpy[i] is 1 if the bookstore owner is grumpy during the ith minute, and is 0 otherwise.

+

During certain minutes, the bookstore owner is grumpy. You are given a binary array grumpy where grumpy[i] is 1 if the bookstore owner is grumpy during the ith minute, and is 0 otherwise.

-

When the bookstore owner is grumpy, the customers of that minute are not satisfied, otherwise, they are satisfied.

+

When the bookstore owner is grumpy, the customers entering during that minute are not satisfied. Otherwise, they are satisfied.

-

The bookstore owner knows a secret technique to keep themselves not grumpy for minutes consecutive minutes, but can only use it once.

+

The bookstore owner knows a secret technique to remain not grumpy for minutes consecutive minutes, but this technique can only be used once.

-

Return the maximum number of customers that can be satisfied throughout the day.

+

Return the maximum number of customers that can be satisfied throughout the day.

 

Example 1:

-
-Input: customers = [1,0,1,2,1,1,7,5], grumpy = [0,1,0,1,0,1,0,1], minutes = 3
-Output: 16
-Explanation: The bookstore owner keeps themselves not grumpy for the last 3 minutes. 
-The maximum number of customers that can be satisfied = 1 + 1 + 1 + 1 + 7 + 5 = 16.
-
+
+

Input: customers = [1,0,1,2,1,1,7,5], grumpy = [0,1,0,1,0,1,0,1], minutes = 3

+ +

Output: 16

+ +

Explanation:

+ +

The bookstore owner keeps themselves not grumpy for the last 3 minutes.

+ +

The maximum number of customers that can be satisfied = 1 + 1 + 1 + 1 + 7 + 5 = 16.

+

Example 2:

-
-Input: customers = [1], grumpy = [0], minutes = 1
-Output: 1
-
+
+

Input: customers = [1], grumpy = [0], minutes = 1

+ +

Output: 1

+

 

Constraints:

diff --git a/solution/1100-1199/1152.Analyze User Website Visit Pattern/README_EN.md b/solution/1100-1199/1152.Analyze User Website Visit Pattern/README_EN.md index bc8f7c9ed7aab..068e467a7a42c 100644 --- a/solution/1100-1199/1152.Analyze User Website Visit Pattern/README_EN.md +++ b/solution/1100-1199/1152.Analyze User Website Visit Pattern/README_EN.md @@ -36,7 +36,9 @@ tags:
  • Also, if the pattern is ["luffy", "luffy", "luffy"], the score is the number of users x such that x visited "luffy" three different times at different timestamps.
  • -

    Return the pattern with the largest score. If there is more than one pattern with the same largest score, return the lexicographically smallest such pattern.

    +

    Return the pattern with the largest score. If there is more than one pattern with the same largest score, return the lexicographically smallest such pattern.

    + +

    Note that the websites in a pattern do not need to be visited contiguously, they only need to be visited in the order they appeared in the pattern.

     

    Example 1:

    diff --git a/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/README_EN.md b/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/README_EN.md index 283121786a480..a7fdf018480cd 100644 --- a/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/README_EN.md +++ b/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/README_EN.md @@ -28,7 +28,9 @@ tags:

     

    Example 1:

    - + +

    +
     Input: n = 4, edges = [[0,1,3],[1,2,1],[1,3,4],[2,3,1]], distanceThreshold = 4
     Output: 3
    @@ -42,7 +44,9 @@ Cities 0 and 3 have 2 neighboring cities at a distanceThreshold = 4, but we have
     

    Example 2:

    - + +

    +
     Input: n = 5, edges = [[0,1,2],[0,4,8],[1,2,3],[1,4,2],[2,3,1],[3,4,1]], distanceThreshold = 2
     Output: 0
    diff --git a/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/images/problem1334example0.png b/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/images/problem1334example0.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..a12994b4e54e8e4bedefde304d5adfea8972e734
    GIT binary patch
    literal 124293
    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
    z
    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

    dqG*;v(0794WpQU{Je#I1R!qoaLW46o%+J>TU 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%0A;zp);idz%LV9blS+xN@~AjukT^xca{2&czR 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 -

     

    -

    Table: MovieRating

    @@ -56,7 +55,7 @@ user_id is the primary key (column with unique values) for this table.
     | rating        | int     |
     | created_at    | date    |
     +---------------+---------+
    -(movie_id, user_id) is the primary key (column with unique values) for this table.
    +(movie_id, user_id) is the primary key (column with unique values) for this table.
     This table contains the rating of a movie by a user in their review.
     created_at is the user's review date. 
     
    diff --git a/solution/1400-1499/1462.Course Schedule IV/README_EN.md b/solution/1400-1499/1462.Course Schedule IV/README_EN.md index 8f05842d9bb4f..bd4cb9b54f6bc 100644 --- a/solution/1400-1499/1462.Course Schedule IV/README_EN.md +++ b/solution/1400-1499/1462.Course Schedule IV/README_EN.md @@ -65,12 +65,12 @@ Course 0 is not a prerequisite of course 1, but the opposite is true.
  • 2 <= numCourses <= 100
  • 0 <= prerequisites.length <= (numCourses * (numCourses - 1) / 2)
  • prerequisites[i].length == 2
  • -
  • 0 <= ai, bi <= n - 1
  • +
  • 0 <= ai, bi <= numCourses - 1
  • ai != bi
  • All the pairs [ai, bi] are unique.
  • The prerequisites graph has no cycles.
  • 1 <= queries.length <= 104
  • -
  • 0 <= ui, vi <= n - 1
  • +
  • 0 <= ui, vi <= numCourses - 1
  • ui != vi
  • diff --git a/solution/1700-1799/1798.Maximum Number of Consecutive Values You Can Make/README_EN.md b/solution/1700-1799/1798.Maximum Number of Consecutive Values You Can Make/README_EN.md index 8ab9fa03ea0b7..ac009abc97397 100644 --- a/solution/1700-1799/1798.Maximum Number of Consecutive Values You Can Make/README_EN.md +++ b/solution/1700-1799/1798.Maximum Number of Consecutive Values You Can Make/README_EN.md @@ -56,7 +56,7 @@ You can make 8 consecutive integer values starting from 0.

    ^U$sR+UiFYjyInEpl)MiI2!*Qc?f%mQvlNr# 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%0DGPjrqz?rgEt?X9)WS|_QK^>ur| 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 literal 0 HcmV?d00001 diff --git a/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/images/problem1334example1.png b/solution/1300-1399/1334.Find the City With the Smallest Number of Neighbors at a Threshold Distance/images/problem1334example1.png new file mode 100644 index 0000000000000000000000000000000000000000..a9de4daad131a177c41f555aae45d7c04d494015 GIT binary patch literal 84097 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

    Example 3:

    -Input: nums = [1,4,10,3,1]
    +Input: coins = [1,4,10,3,1]
     Output: 20

     

    diff --git a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README.md b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README.md index b7dc7b03596aa..907de5036c28b 100644 --- a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README.md +++ b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README.md @@ -314,7 +314,7 @@ function getDirections(root: TreeNode | null, startValue: number, destValue: num const left = lca(node.left, p, q); const right = lca(node.right, p, q); - return left && right ? node : left ?? right; + return left && right ? node : (left ?? right); }; const dfs = (node: TreeNode | null, x: number, path: string[]): boolean => { @@ -370,7 +370,7 @@ var getDirections = function (root, startValue, destValue) { const left = lca(node.left, p, q); const right = lca(node.right, p, q); - return left && right ? node : left ?? right; + return left && right ? node : (left ?? right); }; const dfs = (node, x, path) => { diff --git a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README_EN.md b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README_EN.md index 41a9811d4e980..58782483df639 100644 --- a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README_EN.md +++ b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/README_EN.md @@ -310,7 +310,7 @@ function getDirections(root: TreeNode | null, startValue: number, destValue: num const left = lca(node.left, p, q); const right = lca(node.right, p, q); - return left && right ? node : left ?? right; + return left && right ? node : (left ?? right); }; const dfs = (node: TreeNode | null, x: number, path: string[]): boolean => { @@ -366,7 +366,7 @@ var getDirections = function (root, startValue, destValue) { const left = lca(node.left, p, q); const right = lca(node.right, p, q); - return left && right ? node : left ?? right; + return left && right ? node : (left ?? right); }; const dfs = (node, x, path) => { diff --git a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.js b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.js index c6ca93d60610d..cf11074f0553b 100644 --- a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.js +++ b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.js @@ -20,7 +20,7 @@ var getDirections = function (root, startValue, destValue) { const left = lca(node.left, p, q); const right = lca(node.right, p, q); - return left && right ? node : left ?? right; + return left && right ? node : (left ?? right); }; const dfs = (node, x, path) => { diff --git a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.ts b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.ts index fa2f24e5d72b9..5c028830da797 100644 --- a/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.ts +++ b/solution/2000-2099/2096.Step-By-Step Directions From a Binary Tree Node to Another/Solution.ts @@ -20,7 +20,7 @@ function getDirections(root: TreeNode | null, startValue: number, destValue: num const left = lca(node.left, p, q); const right = lca(node.right, p, q); - return left && right ? node : left ?? right; + return left && right ? node : (left ?? right); }; const dfs = (node: TreeNode | null, x: number, path: string[]): boolean => { diff --git a/solution/3100-3199/3102.Minimize Manhattan Distances/README_EN.md b/solution/3100-3199/3102.Minimize Manhattan Distances/README_EN.md index 7613013109450..14ffe4e189cb6 100644 --- a/solution/3100-3199/3102.Minimize Manhattan Distances/README_EN.md +++ b/solution/3100-3199/3102.Minimize Manhattan Distances/README_EN.md @@ -22,7 +22,7 @@ tags: -

    You are given a array points representing integer coordinates of some points on a 2D plane, where points[i] = [xi, yi].

    +

    You are given an array points representing integer coordinates of some points on a 2D plane, where points[i] = [xi, yi].

    The distance between two points is defined as their Manhattan distance.

    diff --git a/solution/3100-3199/3112.Minimum Time to Visit Disappearing Nodes/README_EN.md b/solution/3100-3199/3112.Minimum Time to Visit Disappearing Nodes/README_EN.md index 5d150f2fbba32..6ad8b30555db9 100644 --- a/solution/3100-3199/3112.Minimum Time to Visit Disappearing Nodes/README_EN.md +++ b/solution/3100-3199/3112.Minimum Time to Visit Disappearing Nodes/README_EN.md @@ -25,22 +25,22 @@ tags:

    Additionally, you are given an array disappear, where disappear[i] denotes the time when the node i disappears from the graph and you won't be able to visit it.

    -

    Notice that the graph might be disconnected and might contain multiple edges.

    +

    Note that the graph might be disconnected and might contain multiple edges.

    Return the array answer, with answer[i] denoting the minimum units of time required to reach node i from node 0. If node i is unreachable from node 0 then answer[i] is -1.

     

    Example 1:

    -

    -
    -

    Input: n = 3, edges = [[0,1,2],[1,2,1],[0,2,4]], disappear = [1,1,5]

    +

    Input: n = 3, edges = [[0,1,2],[1,2,1],[0,2,4]], disappear = [1,1,5]

    -

    Output: [0,-1,4]

    +

    Output: [0,-1,4]

    Explanation:

    +

    +

    We are starting our journey from node 0, and our goal is to find the minimum time required to reach each node before it disappears.