From b8295034857d0513f179479d01a7ab6a23ad6af8 Mon Sep 17 00:00:00 2001 From: Lusina <12752833+BrianLusina@users.noreply.github.com> Date: Wed, 12 Nov 2025 09:06:29 +0300 Subject: [PATCH 1/3] feat(arrays, subarrays): count subarrays with fixed bounds --- .../subarrays_with_fixed_bounds/README.md | 22 +++++++ .../subarrays_with_fixed_bounds/__init__.py | 31 ++++++++++ ...barrays_with_fixed_bounds_example_four.png | Bin 0 -> 24674 bytes ...ubarrays_with_fixed_bounds_example_one.png | Bin 0 -> 30511 bytes ...arrays_with_fixed_bounds_example_three.png | Bin 0 -> 32307 bytes ...ubarrays_with_fixed_bounds_example_two.png | Bin 0 -> 28557 bytes .../test_subarrays_with_fixed_bounds.py | 56 ++++++++++++++++++ 7 files changed, 109 insertions(+) create mode 100644 datastructures/arrays/subarrays_with_fixed_bounds/README.md create mode 100644 datastructures/arrays/subarrays_with_fixed_bounds/__init__.py create mode 100644 datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_four.png create mode 100644 datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_one.png create mode 100644 datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_three.png create mode 100644 datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_two.png create mode 100644 datastructures/arrays/subarrays_with_fixed_bounds/test_subarrays_with_fixed_bounds.py diff --git a/datastructures/arrays/subarrays_with_fixed_bounds/README.md b/datastructures/arrays/subarrays_with_fixed_bounds/README.md new file mode 100644 index 00000000..0ad75664 --- /dev/null +++ b/datastructures/arrays/subarrays_with_fixed_bounds/README.md @@ -0,0 +1,22 @@ +# Count Subarrays with Fixed Bounds + +Given an integer array, nums, and two integers minK and maxK, return the number of fixed-bound subarrays. + +A subarray in nums is called a fixed-bound subarray if it satisfies the following conditions: + +1. The smallest value in the subarray equals `minK`. +2. The largest value in the subarray equals `maxK`. + +> Note: A subarray is a contiguous sequence of elements within an array. + +Constraints: + +- 2 ≤ nums.length ≤ 10^3 +- 1 ≤ nums[i], minK, maxK ≤10^3 + +## Examples + +![Example One](./images/subarrays_with_fixed_bounds_example_one.png) +![Example Two](./images/subarrays_with_fixed_bounds_example_two.png) +![Example Three](./images/subarrays_with_fixed_bounds_example_three.png) +![Example Four](./images/subarrays_with_fixed_bounds_example_four.png) diff --git a/datastructures/arrays/subarrays_with_fixed_bounds/__init__.py b/datastructures/arrays/subarrays_with_fixed_bounds/__init__.py new file mode 100644 index 00000000..c642b396 --- /dev/null +++ b/datastructures/arrays/subarrays_with_fixed_bounds/__init__.py @@ -0,0 +1,31 @@ +from typing import List + + +def count_subarrays(nums: List[int], min_k: int, max_k: int) -> int: + """ + Counts the number of subarrays in the provided array which satisfies the following conditions: + 1. The smallest value in the subarray equals min_k. + 2. The largest value in the subarray equals max_k. + + Args: + nums (List[int]): The array of integers. + min_k (int): The minimum value in the subarray. + max_k (int): The maximum value in the subarray. + + Returns: + int: The number of subarrays that satisfies the conditions. + """ + last_min, last_max, last_invalid = -1, -1, -1 + count = 0 + + for i, num in enumerate(nums): + if num == min_k: + last_min = i + if num == max_k: + last_max = i + if num < min_k or num > max_k: + last_invalid = i + + count += max(0, min(last_min, last_max) - last_invalid) + + return count \ No newline at end of file diff --git a/datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_four.png b/datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_four.png new file mode 100644 index 0000000000000000000000000000000000000000..15659cf746aed4bb7eefc8d3d70af0fcabe36966 GIT binary patch literal 24674 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 YD8KwM-w^+%_VGW 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 Jg~GEp{|`y7?gsz> literal 0 HcmV?d00001 diff --git a/datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_three.png b/datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_three.png new file mode 100644 index 0000000000000000000000000000000000000000..d3602d548cd2a7cb00c149c65edffcd468275885 GIT binary patch literal 32307 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 literal 0 HcmV?d00001 diff --git a/datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_two.png b/datastructures/arrays/subarrays_with_fixed_bounds/images/subarrays_with_fixed_bounds_example_two.png new file mode 100644 index 0000000000000000000000000000000000000000..7265ea6e0f3108c020149237f28dc87b6a71529f GIT binary patch literal 28557 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 SnsHPzZ>?D4!j9$NIuX(QnsFNl6xH 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 Date: Wed, 12 Nov 2025 06:06:53 +0000 Subject: [PATCH 2/3] updating DIRECTORY.md --- DIRECTORY.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index 94efe42a..495f67b4 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -196,6 +196,8 @@ * [Min Increment For Unique](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/arrays/minincrementsforunique/min_increment_for_unique.py) * Non Overlapping Intervals * [Test Non Overlapping Intervals](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/arrays/non_overlapping_intervals/test_non_overlapping_intervals.py) + * Subarrays With Fixed Bounds + * [Test Subarrays With Fixed Bounds](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/arrays/subarrays_with_fixed_bounds/test_subarrays_with_fixed_bounds.py) * Dicts * [Default Dicts](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/dicts/default_dicts.py) * [Ordered Dict](https://github.com/BrianLusina/PythonSnips/blob/master/datastructures/dicts/ordered_dict.py) From b497e84be3130703702b518831990887fd1d9910 Mon Sep 17 00:00:00 2001 From: Lusina <12752833+BrianLusina@users.noreply.github.com> Date: Wed, 12 Nov 2025 09:19:15 +0300 Subject: [PATCH 3/3] refactor(arrays, subarrays): add doctests and edge cae --- .../subarrays_with_fixed_bounds/README.md | 2 +- .../subarrays_with_fixed_bounds/__init__.py | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/datastructures/arrays/subarrays_with_fixed_bounds/README.md b/datastructures/arrays/subarrays_with_fixed_bounds/README.md index 0ad75664..090c666d 100644 --- a/datastructures/arrays/subarrays_with_fixed_bounds/README.md +++ b/datastructures/arrays/subarrays_with_fixed_bounds/README.md @@ -12,7 +12,7 @@ A subarray in nums is called a fixed-bound subarray if it satisfies the followin Constraints: - 2 ≤ nums.length ≤ 10^3 -- 1 ≤ nums[i], minK, maxK ≤10^3 +- 1 ≤ nums[i], minK, maxK ≤ 10^3 ## Examples diff --git a/datastructures/arrays/subarrays_with_fixed_bounds/__init__.py b/datastructures/arrays/subarrays_with_fixed_bounds/__init__.py index c642b396..a725d9fd 100644 --- a/datastructures/arrays/subarrays_with_fixed_bounds/__init__.py +++ b/datastructures/arrays/subarrays_with_fixed_bounds/__init__.py @@ -3,7 +3,8 @@ def count_subarrays(nums: List[int], min_k: int, max_k: int) -> int: """ - Counts the number of subarrays in the provided array which satisfies the following conditions: + This counts the number of subarrays in the provided array which satisfies the following conditions: + 1. The smallest value in the subarray equals min_k. 2. The largest value in the subarray equals max_k. @@ -14,7 +15,21 @@ def count_subarrays(nums: List[int], min_k: int, max_k: int) -> int: Returns: int: The number of subarrays that satisfies the conditions. + + Examples: + >>> count_subarrays([2,1,4,3,2],2,3) + 1 + >>> count_subarrays([1,2,3,2,1],1,3) + 5 + >>> count_subarrays([4,4,4],4,4) + 6 + >>> count_subarrays([2,2,2],4,4) + 0 """ + # edge case to handle empty arrays or invalid bounds + if not nums or min_k > max_k: + return 0 + last_min, last_max, last_invalid = -1, -1, -1 count = 0 @@ -28,4 +43,4 @@ def count_subarrays(nums: List[int], min_k: int, max_k: int) -> int: count += max(0, min(last_min, last_max) - last_invalid) - return count \ No newline at end of file + return count