From f4b58ecc6a586b7ee02a4b342d7611b1622ef86a Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 17:59:46 +0530 Subject: [PATCH 01/21] feat: add solutions to lc problem: No.3033 --- .../Solution.cpp | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp new file mode 100644 index 0000000000000..333866e44ff32 --- /dev/null +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp @@ -0,0 +1,25 @@ +class Solution { +public: + int countMatchingSubarrays(vector& nums, vector& pattern) { + assert(nums.size() >= 2 && nums.size() <= 100); + for (int x : nums) { + assert(x >= 1 && x <= 1000000000); + } + const int m = pattern.size(); + assert(m >= 1 && m < nums.size()); + for (int x : pattern) { + assert(abs(x) <= 1); + } + int r = 0; + for (int i = 0; i + m < nums.size(); ++i) { + bool mark = true; + for (int k = 0; mark && k < m; ++k) { + mark = (pattern[k] == 1 && nums[i + k + 1] > nums[i + k]) + || (pattern[k] == 0 && nums[i + k + 1] == nums[i + k]) + || (pattern[k] == -1 && nums[i + k + 1] < nums[i + k]); + } + r += mark; + } + return r; + } +}; From 28d320dcf13e95c228dea05dbc5735bd44f6a4e1 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:00:51 +0530 Subject: [PATCH 02/21] feat: add solutions to lc problem: No.3034 --- .../Solution.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java new file mode 100644 index 0000000000000..45ba45ad2ad3d --- /dev/null +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java @@ -0,0 +1,22 @@ +class Solution { + public int countMatchingSubarrays(int[] nums, int[] pattern) { + int n = nums.length; + int m = pattern.length; + int count = 0; + for (int i = 0; i <= n - m - 1; i++) { + boolean flag = true; + for (int j = 0; j < m; j++) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || + (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + count++; + } + } + return count; + } +} From bd08e77b2c5c05255f50bf2f1541699b903dadeb Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:01:05 +0530 Subject: [PATCH 03/21] feat: add solutions to lc problem: No.3034 From bcc78e57973ba3e55ea2901a0bbe5231d63b5d04 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:01:20 +0530 Subject: [PATCH 04/21] feat: add solutions to lc problem: No.3034 From fcb8cff357d2f5643e92e751c7da2ecf7d80a886 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:01:54 +0530 Subject: [PATCH 05/21] feat: add solutions to lc problem: No.3034 From bffd742142f1763b26a717c1696940d8aef250b0 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:05:47 +0530 Subject: [PATCH 06/21] feat: add solutions to lc problem: No.3034 --- .../Solution.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.py diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.py b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.py new file mode 100644 index 0000000000000..fc241fb0156d0 --- /dev/null +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.py @@ -0,0 +1,18 @@ +class Solution: + def countMatchingSubarrays(self, nums: List[int], pattern: List[int]) -> int: + n = len(nums) + m = len(pattern) + count = 0 + for i in range(n - m): + flag = True + for j in range(m): + if ( + (pattern[j] == 1 and nums[i + j + 1] <= nums[i + j]) + or (pattern[j] == 0 and nums[i + j + 1] != nums[i + j]) + or (pattern[j] == -1 and nums[i + j + 1] >= nums[i + j]) + ): + flag = False + break + if flag: + count += 1 + return count From 9da0d92bf8f8e023aa90a55b56cb2c61ba5ca68d Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:06:30 +0530 Subject: [PATCH 07/21] feat: add solutions to lc problem: No.3034 --- .../Solution.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts new file mode 100644 index 0000000000000..f4ba0b1d08842 --- /dev/null +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts @@ -0,0 +1,21 @@ +function countMatchingSubarrays(nums: number[], pattern: number[]): number { + const n: number = nums.length; + const m: number = pattern.length; + let count: number = 0; + + for (let i = 0; i <= n - m - 1; i++) { + let flag: boolean = true; + for (let j = 0; j < m; j++) { + if ((pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] === 0 && nums[i + j + 1] !== nums[i + j]) || + (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + count++; + } + } + return count; +} From 9d92cbf622fd08f310a6ba2314ed0dab3a2deb36 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:07:55 +0530 Subject: [PATCH 08/21] feat: add solutions to lc problem: No.3034 --- .../Solution.go | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go new file mode 100644 index 0000000000000..f39ccdc02186f --- /dev/null +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go @@ -0,0 +1,20 @@ +func countMatchingSubarrays(nums []int, pattern []int) int { + n := len(nums) + m := len(pattern) + count := 0 + for i := 0; i <= n-m-1; i++ { + flag := true + for j := 0; j < m; j++ { + if (pattern[j] == 1 && nums[i+j+1] <= nums[i+j]) || + (pattern[j] == 0 && nums[i+j+1] != nums[i+j]) || + (pattern[j] == -1 && nums[i+j+1] >= nums[i+j]) { + flag = false + break + } + } + if flag { + count++ + } + } + return count +} From 90b9198df033161debaf1d312c77132faaec68f2 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:16:41 +0530 Subject: [PATCH 09/21] feat: add solutions to lc problem: No.3034 --- .../Solution.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go index f39ccdc02186f..11b0758410520 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.go @@ -1,9 +1,9 @@ func countMatchingSubarrays(nums []int, pattern []int) int { - n := len(nums) - m := len(pattern) - count := 0 - for i := 0; i <= n-m-1; i++ { - flag := true + n := len(nums) + m := len(pattern) + count := 0 + for i := 0; i <= n-m-1; i++ { + flag := true for j := 0; j < m; j++ { if (pattern[j] == 1 && nums[i+j+1] <= nums[i+j]) || (pattern[j] == 0 && nums[i+j+1] != nums[i+j]) || From a1fee31b15f42494465ad9daaaf37f8550fcbcca Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:17:55 +0530 Subject: [PATCH 10/21] feat: add solutions to lc problem: No.3034 --- .../3034.Number of Subarrays That Match a Pattern I/Solution.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts index f4ba0b1d08842..c43d52a479283 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts @@ -2,7 +2,6 @@ function countMatchingSubarrays(nums: number[], pattern: number[]): number { const n: number = nums.length; const m: number = pattern.length; let count: number = 0; - for (let i = 0; i <= n - m - 1; i++) { let flag: boolean = true; for (let j = 0; j < m; j++) { From 00bacf92d7bd06bfdf1413cf8784f9ea0ffe5f76 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:18:39 +0530 Subject: [PATCH 11/21] feat: add solutions to lc problem: No.3034 --- .../README.md | 110 +++++++++++++++++- 1 file changed, 107 insertions(+), 3 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md index 43ff9a19d3815..36c17f5368d71 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md @@ -56,19 +56,123 @@ ```python - +class Solution: + def countMatchingSubarrays(self, nums: List[int], pattern: List[int]) -> int: + n = len(nums) + m = len(pattern) + count = 0 + for i in range(n - m): + flag = True + for j in range(m): + if ( + (pattern[j] == 1 and nums[i + j + 1] <= nums[i + j]) + or (pattern[j] == 0 and nums[i + j + 1] != nums[i + j]) + or (pattern[j] == -1 and nums[i + j + 1] >= nums[i + j]) + ): + flag = False + break + if flag: + count += 1 + return count ``` ```java - +class Solution { + public int countMatchingSubarrays(int[] nums, int[] pattern) { + int n = nums.length; + int m = pattern.length; + int count = 0; + for (int i = 0; i <= n - m - 1; i++) { + boolean flag = true; + for (int j = 0; j < m; j++) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || + (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + count++; + } + } + return count; + } +} ``` ```cpp - +class Solution { +public: + int countMatchingSubarrays(vector& nums, vector& pattern) { + assert(nums.size() >= 2 && nums.size() <= 100); + for (int x : nums) { + assert(x >= 1 && x <= 1000000000); + } + const int m = pattern.size(); + assert(m >= 1 && m < nums.size()); + for (int x : pattern) { + assert(abs(x) <= 1); + } + int r = 0; + for (int i = 0; i + m < nums.size(); ++i) { + bool mark = true; + for (int k = 0; mark && k < m; ++k) { + mark = (pattern[k] == 1 && nums[i + k + 1] > nums[i + k]) + || (pattern[k] == 0 && nums[i + k + 1] == nums[i + k]) + || (pattern[k] == -1 && nums[i + k + 1] < nums[i + k]); + } + r += mark; + } + return r; + } +}; ``` ```go +func countMatchingSubarrays(nums []int, pattern []int) int { + n := len(nums) + m := len(pattern) + count := 0 + for i := 0; i <= n-m-1; i++ { + flag := true + for j := 0; j < m; j++ { + if (pattern[j] == 1 && nums[i+j+1] <= nums[i+j]) || + (pattern[j] == 0 && nums[i+j+1] != nums[i+j]) || + (pattern[j] == -1 && nums[i+j+1] >= nums[i+j]) { + flag = false + break + } + } + if flag { + count++ + } + } + return count +} +``` +```ts +function countMatchingSubarrays(nums: number[], pattern: number[]): number { + const n: number = nums.length; + const m: number = pattern.length; + let count: number = 0; + for (let i = 0; i <= n - m - 1; i++) { + let flag: boolean = true; + for (let j = 0; j < m; j++) { + if ((pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] === 0 && nums[i + j + 1] !== nums[i + j]) || + (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + count++; + } + } + return count; +} ``` From b778ba55bdcaa0cb894096ee927a07283d796352 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:18:51 +0530 Subject: [PATCH 12/21] feat: add solutions to lc problem: No.3034 --- .../README_EN.md | 110 +++++++++++++++++- 1 file changed, 107 insertions(+), 3 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md index c501092a94dc9..a61e3af01b4f1 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md @@ -52,19 +52,123 @@ Hence, there are 2 subarrays in nums that match the pattern. ```python - +class Solution: + def countMatchingSubarrays(self, nums: List[int], pattern: List[int]) -> int: + n = len(nums) + m = len(pattern) + count = 0 + for i in range(n - m): + flag = True + for j in range(m): + if ( + (pattern[j] == 1 and nums[i + j + 1] <= nums[i + j]) + or (pattern[j] == 0 and nums[i + j + 1] != nums[i + j]) + or (pattern[j] == -1 and nums[i + j + 1] >= nums[i + j]) + ): + flag = False + break + if flag: + count += 1 + return count ``` ```java - +class Solution { + public int countMatchingSubarrays(int[] nums, int[] pattern) { + int n = nums.length; + int m = pattern.length; + int count = 0; + for (int i = 0; i <= n - m - 1; i++) { + boolean flag = true; + for (int j = 0; j < m; j++) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || + (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + count++; + } + } + return count; + } +} ``` ```cpp - +class Solution { +public: + int countMatchingSubarrays(vector& nums, vector& pattern) { + assert(nums.size() >= 2 && nums.size() <= 100); + for (int x : nums) { + assert(x >= 1 && x <= 1000000000); + } + const int m = pattern.size(); + assert(m >= 1 && m < nums.size()); + for (int x : pattern) { + assert(abs(x) <= 1); + } + int r = 0; + for (int i = 0; i + m < nums.size(); ++i) { + bool mark = true; + for (int k = 0; mark && k < m; ++k) { + mark = (pattern[k] == 1 && nums[i + k + 1] > nums[i + k]) + || (pattern[k] == 0 && nums[i + k + 1] == nums[i + k]) + || (pattern[k] == -1 && nums[i + k + 1] < nums[i + k]); + } + r += mark; + } + return r; + } +}; ``` ```go +func countMatchingSubarrays(nums []int, pattern []int) int { + n := len(nums) + m := len(pattern) + count := 0 + for i := 0; i <= n-m-1; i++ { + flag := true + for j := 0; j < m; j++ { + if (pattern[j] == 1 && nums[i+j+1] <= nums[i+j]) || + (pattern[j] == 0 && nums[i+j+1] != nums[i+j]) || + (pattern[j] == -1 && nums[i+j+1] >= nums[i+j]) { + flag = false + break + } + } + if flag { + count++ + } + } + return count +} +``` +```ts +function countMatchingSubarrays(nums: number[], pattern: number[]): number { + const n: number = nums.length; + const m: number = pattern.length; + let count: number = 0; + for (let i = 0; i <= n - m - 1; i++) { + let flag: boolean = true; + for (let j = 0; j < m; j++) { + if ((pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] === 0 && nums[i + j + 1] !== nums[i + j]) || + (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + count++; + } + } + return count; +} ``` From 0a9cf6cd3c7bc64472749c90b18b29ebbcc1fb8f Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:21:29 +0530 Subject: [PATCH 13/21] feat: add solutions to lc problem: No.3034 --- .../Solution.cpp | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp index 333866e44ff32..4ee3163f51e08 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp @@ -1,25 +1,23 @@ class Solution { public: int countMatchingSubarrays(vector& nums, vector& pattern) { - assert(nums.size() >= 2 && nums.size() <= 100); - for (int x : nums) { - assert(x >= 1 && x <= 1000000000); - } - const int m = pattern.size(); - assert(m >= 1 && m < nums.size()); - for (int x : pattern) { - assert(abs(x) <= 1); - } - int r = 0; - for (int i = 0; i + m < nums.size(); ++i) { - bool mark = true; - for (int k = 0; mark && k < m; ++k) { - mark = (pattern[k] == 1 && nums[i + k + 1] > nums[i + k]) - || (pattern[k] == 0 && nums[i + k + 1] == nums[i + k]) - || (pattern[k] == -1 && nums[i + k + 1] < nums[i + k]); + int n = nums.size(); + int m = pattern.size(); + int c = 0; + for (int i = 0; i <= n - m - 1; i++) { + bool flag = true; + for (int j = 0; j < m; j++) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || + (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + c++; } - r += mark; } - return r; + return c; } }; From d80fccd6f0e065c67a899ece319459a3f4f570a8 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:22:20 +0530 Subject: [PATCH 14/21] feat: add solutions to lc problem: No.3034 --- .../README.md | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md index 36c17f5368d71..84f0495208180 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md @@ -105,26 +105,24 @@ class Solution { class Solution { public: int countMatchingSubarrays(vector& nums, vector& pattern) { - assert(nums.size() >= 2 && nums.size() <= 100); - for (int x : nums) { - assert(x >= 1 && x <= 1000000000); - } - const int m = pattern.size(); - assert(m >= 1 && m < nums.size()); - for (int x : pattern) { - assert(abs(x) <= 1); - } - int r = 0; - for (int i = 0; i + m < nums.size(); ++i) { - bool mark = true; - for (int k = 0; mark && k < m; ++k) { - mark = (pattern[k] == 1 && nums[i + k + 1] > nums[i + k]) - || (pattern[k] == 0 && nums[i + k + 1] == nums[i + k]) - || (pattern[k] == -1 && nums[i + k + 1] < nums[i + k]); + int n = nums.size(); + int m = pattern.size(); + int c = 0; + for (int i = 0; i <= n - m - 1; i++) { + bool flag = true; + for (int j = 0; j < m; j++) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || + (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + c++; } - r += mark; } - return r; + return c; } }; ``` From 7df70e12ec02309186634864770d904986be0566 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:22:24 +0530 Subject: [PATCH 15/21] feat: add solutions to lc problem: No.3034 --- .../README_EN.md | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md index a61e3af01b4f1..17bcca4799eb2 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md @@ -101,26 +101,24 @@ class Solution { class Solution { public: int countMatchingSubarrays(vector& nums, vector& pattern) { - assert(nums.size() >= 2 && nums.size() <= 100); - for (int x : nums) { - assert(x >= 1 && x <= 1000000000); - } - const int m = pattern.size(); - assert(m >= 1 && m < nums.size()); - for (int x : pattern) { - assert(abs(x) <= 1); - } - int r = 0; - for (int i = 0; i + m < nums.size(); ++i) { - bool mark = true; - for (int k = 0; mark && k < m; ++k) { - mark = (pattern[k] == 1 && nums[i + k + 1] > nums[i + k]) - || (pattern[k] == 0 && nums[i + k + 1] == nums[i + k]) - || (pattern[k] == -1 && nums[i + k + 1] < nums[i + k]); + int n = nums.size(); + int m = pattern.size(); + int c = 0; + for (int i = 0; i <= n - m - 1; i++) { + bool flag = true; + for (int j = 0; j < m; j++) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || + (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || + (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; + } + } + if (flag) { + c++; } - r += mark; } - return r; + return c; } }; ``` From e0507cebe5c13b9db3e2f35fa80f7c5a5c8326b4 Mon Sep 17 00:00:00 2001 From: Nothing-avil Date: Sun, 11 Feb 2024 12:54:47 +0000 Subject: [PATCH 16/21] style: format code and docs with prettier --- .../README.md | 8 +++++--- .../README_EN.md | 8 +++++--- .../Solution.ts | 6 ++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md index 84f0495208180..a19101701b0a8 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md @@ -133,7 +133,7 @@ func countMatchingSubarrays(nums []int, pattern []int) int { m := len(pattern) count := 0 for i := 0; i <= n-m-1; i++ { - flag := true + flag := true for j := 0; j < m; j++ { if (pattern[j] == 1 && nums[i+j+1] <= nums[i+j]) || (pattern[j] == 0 && nums[i+j+1] != nums[i+j]) || @@ -158,9 +158,11 @@ function countMatchingSubarrays(nums: number[], pattern: number[]): number { for (let i = 0; i <= n - m - 1; i++) { let flag: boolean = true; for (let j = 0; j < m; j++) { - if ((pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || + if ( + (pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || (pattern[j] === 0 && nums[i + j + 1] !== nums[i + j]) || - (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j])) { + (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j]) + ) { flag = false; break; } diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md index 17bcca4799eb2..2f6c2a495a2ba 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md @@ -129,7 +129,7 @@ func countMatchingSubarrays(nums []int, pattern []int) int { m := len(pattern) count := 0 for i := 0; i <= n-m-1; i++ { - flag := true + flag := true for j := 0; j < m; j++ { if (pattern[j] == 1 && nums[i+j+1] <= nums[i+j]) || (pattern[j] == 0 && nums[i+j+1] != nums[i+j]) || @@ -154,9 +154,11 @@ function countMatchingSubarrays(nums: number[], pattern: number[]): number { for (let i = 0; i <= n - m - 1; i++) { let flag: boolean = true; for (let j = 0; j < m; j++) { - if ((pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || + if ( + (pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || (pattern[j] === 0 && nums[i + j + 1] !== nums[i + j]) || - (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j])) { + (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j]) + ) { flag = false; break; } diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts index c43d52a479283..190612ca393f2 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.ts @@ -5,9 +5,11 @@ function countMatchingSubarrays(nums: number[], pattern: number[]): number { for (let i = 0; i <= n - m - 1; i++) { let flag: boolean = true; for (let j = 0; j < m; j++) { - if ((pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || + if ( + (pattern[j] === 1 && nums[i + j + 1] <= nums[i + j]) || (pattern[j] === 0 && nums[i + j + 1] !== nums[i + j]) || - (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j])) { + (pattern[j] === -1 && nums[i + j + 1] >= nums[i + j]) + ) { flag = false; break; } From 22517c1412bf692aeb103a348a3ecd6e56002cb0 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:26:02 +0530 Subject: [PATCH 17/21] feat: add solutions to lc problem: No.3034 --- .../Solution.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp index 4ee3163f51e08..42ac7909ce98a 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp @@ -7,9 +7,7 @@ class Solution { for (int i = 0; i <= n - m - 1; i++) { bool flag = true; for (int j = 0; j < m; j++) { - if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || - (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || - (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { flag = false; break; } From a941ad373c0ff2bb1b22bbcdb80f238f332a4ac8 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:27:03 +0530 Subject: [PATCH 18/21] feat: add solutions to lc problem: No.3034 --- .../Solution.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java index 45ba45ad2ad3d..f4bcd34d11023 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.java @@ -6,9 +6,9 @@ public int countMatchingSubarrays(int[] nums, int[] pattern) { for (int i = 0; i <= n - m - 1; i++) { boolean flag = true; for (int j = 0; j < m; j++) { - if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || - (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || - (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) + || (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) + || (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { flag = false; break; } From d34a5e04fda67e410b42084b096b62b1d436789e Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:29:10 +0530 Subject: [PATCH 19/21] feat: add solutions to lc problem: No.3034 --- .../Solution.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp index 42ac7909ce98a..e2f1028f77630 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/Solution.cpp @@ -8,8 +8,8 @@ class Solution { bool flag = true; for (int j = 0; j < m; j++) { if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { - flag = false; - break; + flag = false; + break; } } if (flag) { From 5f429be0551ed856a5a26082bdd1d0df0d8f00f5 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:31:45 +0530 Subject: [PATCH 20/21] feat: add solutions to lc problem: No.3034 --- .../README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md index a19101701b0a8..21ab6b47a2833 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README.md @@ -111,11 +111,9 @@ public: for (int i = 0; i <= n - m - 1; i++) { bool flag = true; for (int j = 0; j < m; j++) { - if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || - (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || - (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { - flag = false; - break; + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; } } if (flag) { From 2990d85dba8342271bd80016fed529c5a4ebff49 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:31:49 +0530 Subject: [PATCH 21/21] feat: add solutions to lc problem: No.3034 --- .../README_EN.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md index 2f6c2a495a2ba..6f11783a5e6ec 100644 --- a/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md +++ b/solution/3000-3099/3034.Number of Subarrays That Match a Pattern I/README_EN.md @@ -107,11 +107,9 @@ public: for (int i = 0; i <= n - m - 1; i++) { bool flag = true; for (int j = 0; j < m; j++) { - if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || - (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || - (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { - flag = false; - break; + if ((pattern[j] == 1 && nums[i + j + 1] <= nums[i + j]) || (pattern[j] == 0 && nums[i + j + 1] != nums[i + j]) || (pattern[j] == -1 && nums[i + j + 1] >= nums[i + j])) { + flag = false; + break; } } if (flag) {