From 5999368a3ecdb1e25a19cb6f547a1631650333b4 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Thu, 20 Jun 2024 09:03:22 +0800 Subject: [PATCH 1/2] feat: update lc problems --- .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../3161.Block Placement Queries/README.md | 2 + .../3161.Block Placement Queries/README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../3163.String Compression III/README.md | 2 + .../3163.String Compression III/README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../3100-3199/3174.Clear Digits/README.md | 2 + .../3100-3199/3174.Clear Digits/README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 2 + .../README_EN.md | 2 + .../README.md | 156 ++++++++++++++++++ .../README_EN.md | 156 ++++++++++++++++++ .../Solution.cpp | 18 ++ .../Solution.go | 11 ++ .../Solution.java | 15 ++ .../Solution.py | 7 + .../Solution.ts | 7 + .../images/ex1-edited.gif | Bin 0 -> 12836 bytes .../images/ex2-edited.gif | Bin 0 -> 33959 bytes solution/README.md | 1 + solution/README_EN.md | 1 + 51 files changed, 452 insertions(+) create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README.md create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README_EN.md create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.cpp create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.go create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.java create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.py create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.ts create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/images/ex1-edited.gif create mode 100644 solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/images/ex2-edited.gif diff --git a/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README.md b/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README.md index 2d026fac1fae9..54e3498390cfa 100644 --- a/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README.md +++ b/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3158.Find%20the%20XOR%20of%20Numbers%20Which%20Appear%20Twice/README.md +rating: 1172 +source: 第 131 场双周赛 Q1 tags: - 位运算 - 数组 diff --git a/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README_EN.md b/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README_EN.md index 8f070239505d9..497c8b45a4ad2 100644 --- a/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README_EN.md +++ b/solution/3100-3199/3158.Find the XOR of Numbers Which Appear Twice/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Easy edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3158.Find%20the%20XOR%20of%20Numbers%20Which%20Appear%20Twice/README_EN.md +rating: 1172 +source: Biweekly Contest 131 Q1 tags: - Bit Manipulation - Array diff --git a/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README.md b/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README.md index a5e38d623a534..e40f0c105fb26 100644 --- a/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README.md +++ b/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3159.Find%20Occurrences%20of%20an%20Element%20in%20an%20Array/README.md +rating: 1262 +source: 第 131 场双周赛 Q2 tags: - 数组 - 哈希表 diff --git a/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README_EN.md b/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README_EN.md index 2d2d8c150eb1b..f77b0bedebc03 100644 --- a/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README_EN.md +++ b/solution/3100-3199/3159.Find Occurrences of an Element in an Array/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3159.Find%20Occurrences%20of%20an%20Element%20in%20an%20Array/README_EN.md +rating: 1262 +source: Biweekly Contest 131 Q2 tags: - Array - Hash Table diff --git a/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README.md b/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README.md index 9f94281c34d43..f67d5d4a3f5c4 100644 --- a/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README.md +++ b/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3160.Find%20the%20Number%20of%20Distinct%20Colors%20Among%20the%20Balls/README.md +rating: 1517 +source: 第 131 场双周赛 Q3 tags: - 数组 - 哈希表 diff --git a/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README_EN.md b/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README_EN.md index 9342d11aa1b80..ed3c1ff308fca 100644 --- a/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README_EN.md +++ b/solution/3100-3199/3160.Find the Number of Distinct Colors Among the Balls/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3160.Find%20the%20Number%20of%20Distinct%20Colors%20Among%20the%20Balls/README_EN.md +rating: 1517 +source: Biweekly Contest 131 Q3 tags: - Array - Hash Table diff --git a/solution/3100-3199/3161.Block Placement Queries/README.md b/solution/3100-3199/3161.Block Placement Queries/README.md index 069d4a3e0de1f..877e3ddbbae62 100644 --- a/solution/3100-3199/3161.Block Placement Queries/README.md +++ b/solution/3100-3199/3161.Block Placement Queries/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 困难 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3161.Block%20Placement%20Queries/README.md +rating: 2513 +source: 第 131 场双周赛 Q4 tags: - 树状数组 - 线段树 diff --git a/solution/3100-3199/3161.Block Placement Queries/README_EN.md b/solution/3100-3199/3161.Block Placement Queries/README_EN.md index 73949f1ffb4b6..fb3400190bd0d 100644 --- a/solution/3100-3199/3161.Block Placement Queries/README_EN.md +++ b/solution/3100-3199/3161.Block Placement Queries/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Hard edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3161.Block%20Placement%20Queries/README_EN.md +rating: 2513 +source: Biweekly Contest 131 Q4 tags: - Binary Indexed Tree - Segment Tree diff --git a/solution/3100-3199/3162.Find the Number of Good Pairs I/README.md b/solution/3100-3199/3162.Find the Number of Good Pairs I/README.md index fa660e9d8fa0e..a99efdfd8a83e 100644 --- a/solution/3100-3199/3162.Find the Number of Good Pairs I/README.md +++ b/solution/3100-3199/3162.Find the Number of Good Pairs I/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3162.Find%20the%20Number%20of%20Good%20Pairs%20I/README.md +rating: 1168 +source: 第 399 场周赛 Q1 tags: - 数组 - 哈希表 diff --git a/solution/3100-3199/3162.Find the Number of Good Pairs I/README_EN.md b/solution/3100-3199/3162.Find the Number of Good Pairs I/README_EN.md index 87ba55a87dc40..194216adbaa3c 100644 --- a/solution/3100-3199/3162.Find the Number of Good Pairs I/README_EN.md +++ b/solution/3100-3199/3162.Find the Number of Good Pairs I/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Easy edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3162.Find%20the%20Number%20of%20Good%20Pairs%20I/README_EN.md +rating: 1168 +source: Weekly Contest 399 Q1 tags: - Array - Hash Table diff --git a/solution/3100-3199/3163.String Compression III/README.md b/solution/3100-3199/3163.String Compression III/README.md index 26c18eb78149f..0e3135ffb0678 100644 --- a/solution/3100-3199/3163.String Compression III/README.md +++ b/solution/3100-3199/3163.String Compression III/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3163.String%20Compression%20III/README.md +rating: 1311 +source: 第 399 场周赛 Q2 tags: - 字符串 --- diff --git a/solution/3100-3199/3163.String Compression III/README_EN.md b/solution/3100-3199/3163.String Compression III/README_EN.md index d5692ef8fc6d3..7c4452240287a 100644 --- a/solution/3100-3199/3163.String Compression III/README_EN.md +++ b/solution/3100-3199/3163.String Compression III/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3163.String%20Compression%20III/README_EN.md +rating: 1311 +source: Weekly Contest 399 Q2 tags: - String --- diff --git a/solution/3100-3199/3164.Find the Number of Good Pairs II/README.md b/solution/3100-3199/3164.Find the Number of Good Pairs II/README.md index 8e955b77cdb32..8fd39fac99c32 100644 --- a/solution/3100-3199/3164.Find the Number of Good Pairs II/README.md +++ b/solution/3100-3199/3164.Find the Number of Good Pairs II/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3164.Find%20the%20Number%20of%20Good%20Pairs%20II/README.md +rating: 1777 +source: 第 399 场周赛 Q3 tags: - 数组 - 哈希表 diff --git a/solution/3100-3199/3164.Find the Number of Good Pairs II/README_EN.md b/solution/3100-3199/3164.Find the Number of Good Pairs II/README_EN.md index a296ba0a03f4c..b15407f7cdf8e 100644 --- a/solution/3100-3199/3164.Find the Number of Good Pairs II/README_EN.md +++ b/solution/3100-3199/3164.Find the Number of Good Pairs II/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3164.Find%20the%20Number%20of%20Good%20Pairs%20II/README_EN.md +rating: 1777 +source: Weekly Contest 399 Q3 tags: - Array - Hash Table diff --git a/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README.md b/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README.md index 6c6bb31f7d249..dfcefb94b3902 100644 --- a/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README.md +++ b/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 困难 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3165.Maximum%20Sum%20of%20Subsequence%20With%20Non-adjacent%20Elements/README.md +rating: 2697 +source: 第 399 场周赛 Q4 tags: - 线段树 - 数组 diff --git a/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README_EN.md b/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README_EN.md index d8987c905d716..8cbed702cb356 100644 --- a/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README_EN.md +++ b/solution/3100-3199/3165.Maximum Sum of Subsequence With Non-adjacent Elements/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Hard edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3165.Maximum%20Sum%20of%20Subsequence%20With%20Non-adjacent%20Elements/README_EN.md +rating: 2697 +source: Weekly Contest 399 Q4 tags: - Segment Tree - Array diff --git a/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README.md b/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README.md index 5ca59a00b105d..fef1a59a66d2c 100644 --- a/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README.md +++ b/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3168.Minimum%20Number%20of%20Chairs%20in%20a%20Waiting%20Room/README.md +rating: 1211 +source: 第 400 场周赛 Q1 tags: - 字符串 - 模拟 diff --git a/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README_EN.md b/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README_EN.md index 233f63a98682d..592a0a693dd72 100644 --- a/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README_EN.md +++ b/solution/3100-3199/3168.Minimum Number of Chairs in a Waiting Room/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Easy edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3168.Minimum%20Number%20of%20Chairs%20in%20a%20Waiting%20Room/README_EN.md +rating: 1211 +source: Weekly Contest 400 Q1 tags: - String - Simulation diff --git a/solution/3100-3199/3169.Count Days Without Meetings/README.md b/solution/3100-3199/3169.Count Days Without Meetings/README.md index cbf8115634c30..bb0e8d21cc9b2 100644 --- a/solution/3100-3199/3169.Count Days Without Meetings/README.md +++ b/solution/3100-3199/3169.Count Days Without Meetings/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3169.Count%20Days%20Without%20Meetings/README.md +rating: 1483 +source: 第 400 场周赛 Q2 tags: - 数组 - 排序 diff --git a/solution/3100-3199/3169.Count Days Without Meetings/README_EN.md b/solution/3100-3199/3169.Count Days Without Meetings/README_EN.md index 4cfe0f6627a39..5373d1f894693 100644 --- a/solution/3100-3199/3169.Count Days Without Meetings/README_EN.md +++ b/solution/3100-3199/3169.Count Days Without Meetings/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3169.Count%20Days%20Without%20Meetings/README_EN.md +rating: 1483 +source: Weekly Contest 400 Q2 tags: - Array - Sorting diff --git a/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README.md b/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README.md index b4e93f16665fe..8d1aa6931366a 100644 --- a/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README.md +++ b/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3170.Lexicographically%20Minimum%20String%20After%20Removing%20Stars/README.md +rating: 1772 +source: 第 400 场周赛 Q3 tags: - 栈 - 贪心 diff --git a/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README_EN.md b/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README_EN.md index 3f3d0b8e24dfe..1703505a8e3d5 100644 --- a/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README_EN.md +++ b/solution/3100-3199/3170.Lexicographically Minimum String After Removing Stars/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3170.Lexicographically%20Minimum%20String%20After%20Removing%20Stars/README_EN.md +rating: 1772 +source: Weekly Contest 400 Q3 tags: - Stack - Greedy diff --git a/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README.md b/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README.md index c5279d8b9b7e5..8bc8c9f2c1a35 100644 --- a/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README.md +++ b/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 困难 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3171.Find%20Subarray%20With%20Bitwise%20OR%20Closest%20to%20K/README.md +rating: 2162 +source: 第 400 场周赛 Q4 tags: - 位运算 - 线段树 diff --git a/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README_EN.md b/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README_EN.md index f792d45c24001..b3bbb6021b442 100644 --- a/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README_EN.md +++ b/solution/3100-3199/3171.Find Subarray With Bitwise OR Closest to K/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Hard edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3171.Find%20Subarray%20With%20Bitwise%20OR%20Closest%20to%20K/README_EN.md +rating: 2162 +source: Weekly Contest 400 Q4 tags: - Bit Manipulation - Segment Tree diff --git a/solution/3100-3199/3174.Clear Digits/README.md b/solution/3100-3199/3174.Clear Digits/README.md index db0b2774e3b86..16bbb3258f58a 100644 --- a/solution/3100-3199/3174.Clear Digits/README.md +++ b/solution/3100-3199/3174.Clear Digits/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3174.Clear%20Digits/README.md +rating: 1255 +source: 第 132 场双周赛 Q1 tags: - 哈希表 - 字符串 diff --git a/solution/3100-3199/3174.Clear Digits/README_EN.md b/solution/3100-3199/3174.Clear Digits/README_EN.md index e112da2df26e6..77870d76bc439 100644 --- a/solution/3100-3199/3174.Clear Digits/README_EN.md +++ b/solution/3100-3199/3174.Clear Digits/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Easy edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3174.Clear%20Digits/README_EN.md +rating: 1255 +source: Biweekly Contest 132 Q1 tags: - Hash Table - String diff --git a/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README.md b/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README.md index 84e52d4fb8f03..8de19fe9c6493 100644 --- a/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README.md +++ b/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3175.Find%20The%20First%20Player%20to%20win%20K%20Games%20in%20a%20Row/README.md +rating: 1488 +source: 第 132 场双周赛 Q2 tags: - 数组 - 模拟 diff --git a/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README_EN.md b/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README_EN.md index 8f143cfbb3e1c..884e8b2c47db7 100644 --- a/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README_EN.md +++ b/solution/3100-3199/3175.Find The First Player to win K Games in a Row/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3175.Find%20The%20First%20Player%20to%20win%20K%20Games%20in%20a%20Row/README_EN.md +rating: 1488 +source: Biweekly Contest 132 Q2 tags: - Array - Simulation diff --git a/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README.md b/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README.md index 80f7df129e076..40158e36eba5b 100644 --- a/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README.md +++ b/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3176.Find%20the%20Maximum%20Length%20of%20a%20Good%20Subsequence%20I/README.md +rating: 1849 +source: 第 132 场双周赛 Q3 tags: - 数组 - 哈希表 diff --git a/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README_EN.md b/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README_EN.md index f50ee48b4fad6..3f9a6db909578 100644 --- a/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README_EN.md +++ b/solution/3100-3199/3176.Find the Maximum Length of a Good Subsequence I/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3176.Find%20the%20Maximum%20Length%20of%20a%20Good%20Subsequence%20I/README_EN.md +rating: 1849 +source: Biweekly Contest 132 Q3 tags: - Array - Hash Table diff --git a/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README.md b/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README.md index 302b46314a970..161d08460dd5e 100644 --- a/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README.md +++ b/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 困难 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3177.Find%20the%20Maximum%20Length%20of%20a%20Good%20Subsequence%20II/README.md +rating: 2364 +source: 第 132 场双周赛 Q4 tags: - 数组 - 哈希表 diff --git a/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README_EN.md b/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README_EN.md index b20d7b2317250..62f0620bbecec 100644 --- a/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README_EN.md +++ b/solution/3100-3199/3177.Find the Maximum Length of a Good Subsequence II/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Hard edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3177.Find%20the%20Maximum%20Length%20of%20a%20Good%20Subsequence%20II/README_EN.md +rating: 2364 +source: Biweekly Contest 132 Q4 tags: - Array - Hash Table diff --git a/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README.md b/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README.md index 498e62e3c0618..99adfd76fec09 100644 --- a/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README.md +++ b/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3178.Find%20the%20Child%20Who%20Has%20the%20Ball%20After%20K%20Seconds/README.md +rating: 1255 +source: 第 401 场周赛 Q1 tags: - 数学 - 模拟 diff --git a/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README_EN.md b/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README_EN.md index 3461a888b8b1d..0d987d1edfb04 100644 --- a/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README_EN.md +++ b/solution/3100-3199/3178.Find the Child Who Has the Ball After K Seconds/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Easy edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3178.Find%20the%20Child%20Who%20Has%20the%20Ball%20After%20K%20Seconds/README_EN.md +rating: 1255 +source: Weekly Contest 401 Q1 tags: - Math - Simulation diff --git a/solution/3100-3199/3179.Find the N-th Value After K Seconds/README.md b/solution/3100-3199/3179.Find the N-th Value After K Seconds/README.md index 0e04cbf26d6ff..7653f1d95471d 100644 --- a/solution/3100-3199/3179.Find the N-th Value After K Seconds/README.md +++ b/solution/3100-3199/3179.Find the N-th Value After K Seconds/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3179.Find%20the%20N-th%20Value%20After%20K%20Seconds/README.md +rating: 1369 +source: 第 401 场周赛 Q2 tags: - 数组 - 数学 diff --git a/solution/3100-3199/3179.Find the N-th Value After K Seconds/README_EN.md b/solution/3100-3199/3179.Find the N-th Value After K Seconds/README_EN.md index b3e857325f773..814a4ed70b251 100644 --- a/solution/3100-3199/3179.Find the N-th Value After K Seconds/README_EN.md +++ b/solution/3100-3199/3179.Find the N-th Value After K Seconds/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3179.Find%20the%20N-th%20Value%20After%20K%20Seconds/README_EN.md +rating: 1369 +source: Weekly Contest 401 Q2 tags: - Array - Math diff --git a/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README.md b/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README.md index 9918939680483..5f8735a3c3082 100644 --- a/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README.md +++ b/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3180.Maximum%20Total%20Reward%20Using%20Operations%20I/README.md +rating: 1848 +source: 第 401 场周赛 Q3 tags: - 数组 - 动态规划 diff --git a/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README_EN.md b/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README_EN.md index 7a623d3c43cac..10cd748978f98 100644 --- a/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README_EN.md +++ b/solution/3100-3199/3180.Maximum Total Reward Using Operations I/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Medium edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3180.Maximum%20Total%20Reward%20Using%20Operations%20I/README_EN.md +rating: 1848 +source: Weekly Contest 401 Q3 tags: - Array - Dynamic Programming diff --git a/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README.md b/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README.md index 7d6730b971ae7..be8aeacc8e602 100644 --- a/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README.md +++ b/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README.md @@ -2,6 +2,8 @@ comments: true difficulty: 困难 edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3181.Maximum%20Total%20Reward%20Using%20Operations%20II/README.md +rating: 2688 +source: 第 401 场周赛 Q4 tags: - 位运算 - 数组 diff --git a/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README_EN.md b/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README_EN.md index 547d7fc35e082..f745d0c947de1 100644 --- a/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README_EN.md +++ b/solution/3100-3199/3181.Maximum Total Reward Using Operations II/README_EN.md @@ -2,6 +2,8 @@ comments: true difficulty: Hard edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3181.Maximum%20Total%20Reward%20Using%20Operations%20II/README_EN.md +rating: 2688 +source: Weekly Contest 401 Q4 tags: - Bit Manipulation - Array diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README.md b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README.md new file mode 100644 index 0000000000000..0d03f42164c32 --- /dev/null +++ b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README.md @@ -0,0 +1,156 @@ +--- +comments: true +difficulty: 中等 +edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3189.Minimum%20Moves%20to%20Get%20a%20Peaceful%20Board/README.md +--- + + + +# [3189. Minimum Moves to Get a Peaceful Board 🔒](https://leetcode.cn/problems/minimum-moves-to-get-a-peaceful-board) + +[English Version](/solution/3100-3199/3189.Minimum%20Moves%20to%20Get%20a%20Peaceful%20Board/README_EN.md) + +## 题目描述 + + + +

Given a 2D array rooks of length n, where rooks[i] = [xi, yi] indicates the position of a rook on an n x n chess board. Your task is to move the rooks 1 cell at a time vertically or horizontally (to an adjacent cell) such that the board becomes peaceful.

+ +

A board is peaceful if there is exactly one rook in each row and each column.

+ +

Return the minimum number of moves required to get a peaceful board.

+ +

Note that at no point can there be two rooks in the same cell.

+ +

 

+

Example 1:

+ +
+

Input: rooks = [[0,0],[1,0],[1,1]]

+ +

Output: 3

+ +

Explanation:

+
+ +

Example 2:

+ +
+

Input: rooks = [[0,0],[0,1],[0,2],[0,3]]

+ +

Output: 6

+ +

Explanation:

+
+ +

 

+

Constraints:

+ + + + + +## 解法 + + + +### 方法一:贪心 + +我们可以将所有的车按照横坐标排序,然后将车按顺序分配给每一行,计算每个车到目标位置的距离之和。然后将所有的车按照纵坐标排序,按照同样的方法计算每个车到目标位置的距离之和。最后将两个距离之和相加即为答案。 + +时间复杂度 $O(n \times \log n)$,空间复杂度 $O(\log n)$。其中 $n$ 为车的数量。 + + + +#### Python3 + +```python +class Solution: + def minMoves(self, rooks: List[List[int]]) -> int: + rooks.sort() + ans = sum(abs(x - i) for i, (x, _) in enumerate(rooks)) + rooks.sort(key=lambda x: x[1]) + ans += sum(abs(y - j) for j, (_, y) in enumerate(rooks)) + return ans +``` + +#### Java + +```java +class Solution { + public int minMoves(int[][] rooks) { + Arrays.sort(rooks, (a, b) -> a[0] - b[0]); + int ans = 0; + int n = rooks.length; + for (int i = 0; i < n; ++i) { + ans += Math.abs(rooks[i][0] - i); + } + Arrays.sort(rooks, (a, b) -> a[1] - b[1]); + for (int j = 0; j < n; ++j) { + ans += Math.abs(rooks[j][1] - j); + } + return ans; + } +} +``` + +#### C++ + +```cpp +class Solution { +public: + int minMoves(vector>& rooks) { + sort(rooks.begin(), rooks.end()); + int ans = 0; + int n = rooks.size(); + for (int i = 0; i < n; ++i) { + ans += abs(rooks[i][0] - i); + } + sort(rooks.begin(), rooks.end(), [](const vector& a, const vector& b) { + return a[1] < b[1]; + }); + for (int j = 0; j < n; ++j) { + ans += abs(rooks[j][1] - j); + } + return ans; + } +}; +``` + +#### Go + +```go +func minMoves(rooks [][]int) (ans int) { + sort.Slice(rooks, func(i, j int) bool { return rooks[i][0] < rooks[j][0] }) + for i, row := range rooks { + ans += int(math.Abs(float64(row[0] - i))) + } + sort.Slice(rooks, func(i, j int) bool { return rooks[i][1] < rooks[j][1] }) + for j, col := range rooks { + ans += int(math.Abs(float64(col[1] - j))) + } + return +} +``` + +#### TypeScript + +```ts +function minMoves(rooks: number[][]): number { + rooks.sort((a, b) => a[0] - b[0]); + let ans = rooks.reduce((sum, rook, i) => sum + Math.abs(rook[0] - i), 0); + rooks.sort((a, b) => a[1] - b[1]); + ans += rooks.reduce((sum, rook, j) => sum + Math.abs(rook[1] - j), 0); + return ans; +} +``` + + + + + + diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README_EN.md b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README_EN.md new file mode 100644 index 0000000000000..9a7a31cd79739 --- /dev/null +++ b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/README_EN.md @@ -0,0 +1,156 @@ +--- +comments: true +difficulty: Medium +edit_url: https://github.com/doocs/leetcode/edit/main/solution/3100-3199/3189.Minimum%20Moves%20to%20Get%20a%20Peaceful%20Board/README_EN.md +--- + + + +# [3189. Minimum Moves to Get a Peaceful Board 🔒](https://leetcode.com/problems/minimum-moves-to-get-a-peaceful-board) + +[中文文档](/solution/3100-3199/3189.Minimum%20Moves%20to%20Get%20a%20Peaceful%20Board/README.md) + +## Description + + + +

Given a 2D array rooks of length n, where rooks[i] = [xi, yi] indicates the position of a rook on an n x n chess board. Your task is to move the rooks 1 cell at a time vertically or horizontally (to an adjacent cell) such that the board becomes peaceful.

+ +

A board is peaceful if there is exactly one rook in each row and each column.

+ +

Return the minimum number of moves required to get a peaceful board.

+ +

Note that at no point can there be two rooks in the same cell.

+ +

 

+

Example 1:

+ +
+

Input: rooks = [[0,0],[1,0],[1,1]]

+ +

Output: 3

+ +

Explanation:

+
+ +

Example 2:

+ +
+

Input: rooks = [[0,0],[0,1],[0,2],[0,3]]

+ +

Output: 6

+ +

Explanation:

+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= n == rooks.length <= 500
  • +
  • 0 <= xi, yi <= n - 1
  • +
  • The input is generated such that there are no 2 rooks in the same cell.
  • +
+ + + +## Solutions + + + +### Solution 1: Greedy Algorithm + +We can sort all the cars by their x-coordinates, and then allocate the cars to each row in order, calculating the sum of distances from each car to its target position. Then, sort all the cars by their y-coordinates and use the same method to calculate the sum of distances from each car to its target position. Finally, the sum of these two distances is the answer. + +The time complexity is $O(n \times \log n)$, and the space complexity is $O(\log n)$. Here, $n$ is the number of cars. + + + +#### Python3 + +```python +class Solution: + def minMoves(self, rooks: List[List[int]]) -> int: + rooks.sort() + ans = sum(abs(x - i) for i, (x, _) in enumerate(rooks)) + rooks.sort(key=lambda x: x[1]) + ans += sum(abs(y - j) for j, (_, y) in enumerate(rooks)) + return ans +``` + +#### Java + +```java +class Solution { + public int minMoves(int[][] rooks) { + Arrays.sort(rooks, (a, b) -> a[0] - b[0]); + int ans = 0; + int n = rooks.length; + for (int i = 0; i < n; ++i) { + ans += Math.abs(rooks[i][0] - i); + } + Arrays.sort(rooks, (a, b) -> a[1] - b[1]); + for (int j = 0; j < n; ++j) { + ans += Math.abs(rooks[j][1] - j); + } + return ans; + } +} +``` + +#### C++ + +```cpp +class Solution { +public: + int minMoves(vector>& rooks) { + sort(rooks.begin(), rooks.end()); + int ans = 0; + int n = rooks.size(); + for (int i = 0; i < n; ++i) { + ans += abs(rooks[i][0] - i); + } + sort(rooks.begin(), rooks.end(), [](const vector& a, const vector& b) { + return a[1] < b[1]; + }); + for (int j = 0; j < n; ++j) { + ans += abs(rooks[j][1] - j); + } + return ans; + } +}; +``` + +#### Go + +```go +func minMoves(rooks [][]int) (ans int) { + sort.Slice(rooks, func(i, j int) bool { return rooks[i][0] < rooks[j][0] }) + for i, row := range rooks { + ans += int(math.Abs(float64(row[0] - i))) + } + sort.Slice(rooks, func(i, j int) bool { return rooks[i][1] < rooks[j][1] }) + for j, col := range rooks { + ans += int(math.Abs(float64(col[1] - j))) + } + return +} +``` + +#### TypeScript + +```ts +function minMoves(rooks: number[][]): number { + rooks.sort((a, b) => a[0] - b[0]); + let ans = rooks.reduce((sum, rook, i) => sum + Math.abs(rook[0] - i), 0); + rooks.sort((a, b) => a[1] - b[1]); + ans += rooks.reduce((sum, rook, j) => sum + Math.abs(rook[1] - j), 0); + return ans; +} +``` + + + + + + diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.cpp b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.cpp new file mode 100644 index 0000000000000..d47f7200e331c --- /dev/null +++ b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.cpp @@ -0,0 +1,18 @@ +class Solution { +public: + int minMoves(vector>& rooks) { + sort(rooks.begin(), rooks.end()); + int ans = 0; + int n = rooks.size(); + for (int i = 0; i < n; ++i) { + ans += abs(rooks[i][0] - i); + } + sort(rooks.begin(), rooks.end(), [](const vector& a, const vector& b) { + return a[1] < b[1]; + }); + for (int j = 0; j < n; ++j) { + ans += abs(rooks[j][1] - j); + } + return ans; + } +}; \ No newline at end of file diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.go b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.go new file mode 100644 index 0000000000000..9eb9cbc84e1df --- /dev/null +++ b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.go @@ -0,0 +1,11 @@ +func minMoves(rooks [][]int) (ans int) { + sort.Slice(rooks, func(i, j int) bool { return rooks[i][0] < rooks[j][0] }) + for i, row := range rooks { + ans += int(math.Abs(float64(row[0] - i))) + } + sort.Slice(rooks, func(i, j int) bool { return rooks[i][1] < rooks[j][1] }) + for j, col := range rooks { + ans += int(math.Abs(float64(col[1] - j))) + } + return +} \ No newline at end of file diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.java b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.java new file mode 100644 index 0000000000000..a44c223b8048e --- /dev/null +++ b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.java @@ -0,0 +1,15 @@ +class Solution { + public int minMoves(int[][] rooks) { + Arrays.sort(rooks, (a, b) -> a[0] - b[0]); + int ans = 0; + int n = rooks.length; + for (int i = 0; i < n; ++i) { + ans += Math.abs(rooks[i][0] - i); + } + Arrays.sort(rooks, (a, b) -> a[1] - b[1]); + for (int j = 0; j < n; ++j) { + ans += Math.abs(rooks[j][1] - j); + } + return ans; + } +} \ No newline at end of file diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.py b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.py new file mode 100644 index 0000000000000..c2f83374951f8 --- /dev/null +++ b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.py @@ -0,0 +1,7 @@ +class Solution: + def minMoves(self, rooks: List[List[int]]) -> int: + rooks.sort() + ans = sum(abs(x - i) for i, (x, _) in enumerate(rooks)) + rooks.sort(key=lambda x: x[1]) + ans += sum(abs(y - j) for j, (_, y) in enumerate(rooks)) + return ans diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.ts b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.ts new file mode 100644 index 0000000000000..873d26f452ace --- /dev/null +++ b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/Solution.ts @@ -0,0 +1,7 @@ +function minMoves(rooks: number[][]): number { + rooks.sort((a, b) => a[0] - b[0]); + let ans = rooks.reduce((sum, rook, i) => sum + Math.abs(rook[0] - i), 0); + rooks.sort((a, b) => a[1] - b[1]); + ans += rooks.reduce((sum, rook, j) => sum + Math.abs(rook[1] - j), 0); + return ans; +} diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/images/ex1-edited.gif b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/images/ex1-edited.gif new file mode 100644 index 0000000000000000000000000000000000000000..952d5425c52046ecc2188162c0f9ec524fcac00c GIT binary patch literal 12836 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 bx-vt?f0+c$4s7|34Be#+eaOEYg8csh0`gtb literal 0 HcmV?d00001 diff --git a/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/images/ex2-edited.gif b/solution/3100-3199/3189.Minimum Moves to Get a Peaceful Board/images/ex2-edited.gif new file mode 100644 index 0000000000000000000000000000000000000000..b5b73568cd0727bf1fc2abe6c6b0e0a598b40ab0 GIT binary patch literal 33959 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 literal 0 HcmV?d00001 diff --git a/solution/README.md b/solution/README.md index f6ecd0e1625dd..40c8c94ffa0e1 100644 --- a/solution/README.md +++ b/solution/README.md @@ -3199,6 +3199,7 @@ | 3186 | [施咒的最大总伤害](/solution/3100-3199/3186.Maximum%20Total%20Damage%20With%20Spell%20Casting/README.md) | `数组`,`哈希表`,`双指针`,`二分查找`,`动态规划`,`计数`,`排序` | 中等 | 第 402 场周赛 | | 3187 | [数组中的峰值](/solution/3100-3199/3187.Peaks%20in%20Array/README.md) | `树状数组`,`线段树`,`数组` | 困难 | 第 402 场周赛 | | 3188 | [查找得分最高的学生 II](/solution/3100-3199/3188.Find%20Top%20Scoring%20Students%20II/README.md) | | 困难 | 🔒 | +| 3189 | [Minimum Moves to Get a Peaceful Board](/solution/3100-3199/3189.Minimum%20Moves%20to%20Get%20a%20Peaceful%20Board/README.md) | | 中等 | 🔒 | ## 版权 diff --git a/solution/README_EN.md b/solution/README_EN.md index 6b8502fb2e13f..047a9813edcfe 100644 --- a/solution/README_EN.md +++ b/solution/README_EN.md @@ -3197,6 +3197,7 @@ Press Control + F(or Command + F on | 3186 | [Maximum Total Damage With Spell Casting](/solution/3100-3199/3186.Maximum%20Total%20Damage%20With%20Spell%20Casting/README_EN.md) | `Array`,`Hash Table`,`Two Pointers`,`Binary Search`,`Dynamic Programming`,`Counting`,`Sorting` | Medium | Weekly Contest 402 | | 3187 | [Peaks in Array](/solution/3100-3199/3187.Peaks%20in%20Array/README_EN.md) | `Binary Indexed Tree`,`Segment Tree`,`Array` | Hard | Weekly Contest 402 | | 3188 | [Find Top Scoring Students II](/solution/3100-3199/3188.Find%20Top%20Scoring%20Students%20II/README_EN.md) | | Hard | 🔒 | +| 3189 | [Minimum Moves to Get a Peaceful Board](/solution/3100-3199/3189.Minimum%20Moves%20to%20Get%20a%20Peaceful%20Board/README_EN.md) | | Medium | 🔒 | ## Copyright From 5e7f92c7bf84aa5a9f1a84a977a7ab8899d43423 Mon Sep 17 00:00:00 2001 From: yanglbme Date: Thu, 20 Jun 2024 09:16:07 +0800 Subject: [PATCH 2/2] docs: update readme --- .../2700-2799/2748.Number of Beautiful Pairs/README.md | 10 +++++++++- .../2748.Number of Beautiful Pairs/README_EN.md | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/solution/2700-2799/2748.Number of Beautiful Pairs/README.md b/solution/2700-2799/2748.Number of Beautiful Pairs/README.md index bc93f9b4588e9..382f7a8434f2b 100644 --- a/solution/2700-2799/2748.Number of Beautiful Pairs/README.md +++ b/solution/2700-2799/2748.Number of Beautiful Pairs/README.md @@ -70,7 +70,15 @@ i = 0 和 j = 2 :nums[0] 的第一个数字是 1 ,nums[2] 的最后一个数 -### 方法一 +### 方法一:计数 + +我们可以用一个长度为 $10$ 的数组 $\text{cnt}$ 来记录每个数字的第一个数字出现的次数。 + +遍历数组 $\text{nums}$,对于每个数字 $x$,我们枚举 $0$ 到 $9$ 的每个数字 $y$,如果 $\text{cnt}[y]$ 不为 $0$ 且 $\text{gcd}(x b\mod 10, y) = 1$,则答案加上 $\text{cnt}[y]$。然后,我们将 $x$ 的第一个数字出现的次数加 $1$。 + +遍历结束后,返回答案即可。 + +时间复杂度 $O(n \times (k + \log M))$,空间复杂度 $O(k + \log M)$。其中 $n$ 为数组 $\text{nums}$ 的长度,而 $k$ 和 $M$ 分别表示数组 $\text{nums}$ 中的数字的种类以及最大值。 diff --git a/solution/2700-2799/2748.Number of Beautiful Pairs/README_EN.md b/solution/2700-2799/2748.Number of Beautiful Pairs/README_EN.md index 0ef54ca10efaa..5b9a2ea903ea6 100644 --- a/solution/2700-2799/2748.Number of Beautiful Pairs/README_EN.md +++ b/solution/2700-2799/2748.Number of Beautiful Pairs/README_EN.md @@ -69,7 +69,15 @@ Thus, we return 2. -### Solution 1 +### Solution 1: Counting + +We can use an array $\text{cnt}$ of length $10$ to record the count of the first digit of each number. + +Iterate through the array $\text{nums}$. For each number $x$, we enumerate each digit $y$ from $0$ to $9$. If $\text{cnt}[y]$ is not $0$ and $\text{gcd}(x \mod 10, y) = 1$, then the answer is incremented by $\text{cnt}[y]$. Then, we increment the count of the first digit of $x$ by $1$. + +After the iteration, return the answer. + +The time complexity is $O(n \times (k + \log M))$, and the space complexity is $O(k + \log M)$. Here, $n$ is the length of the array $\text{nums}$, while $k$ and $M$ respectively represent the number of distinct numbers and the maximum value in the array $\text{nums}$.