3105. Longest Strictly Increasing or Strictly Decreasing Subarray
You are given an array of integers nums. Return the length of the longest subarray of nums which is either strictly increasing or strictly decreasing.
Example 1:
Input: nums = [1,4,3,3,2]
Output: 2
Explanation:
The strictly increasing subarrays of nums are [1], [2], [3], [3], [4], and [1,4].
The strictly decreasing subarrays of nums are [1], [2], [3], [3], [4], [3,2], and [4,3].
Hence, we return 2.
Example 2:
Input: nums = [3,3,3,3]
Output: 1
Explanation:
The strictly increasing subarrays of nums are [3], [3], [3], and [3].
The strictly decreasing subarrays of nums are [3], [3], [3], and [3].
Hence, we return 1.
Example 3:
Input: nums = [3,2,1]
Output: 3
Explanation:
The strictly increasing subarrays of nums are [3], [2], and [1].
The strictly decreasing subarrays of nums are [3], [2], [1], [3,2], [2,1], and [3,2,1].
Hence, we return 3.
Constraints:
1 <= nums.length <= 501 <= nums[i] <= 50
JAVA
class Solution { public int longestMonotonicSubarray(int[] nums) { int ans = 1; for (int i = 1, t = 1; i < nums.length; ++i) { if (nums[i - 1] < nums[i]) { ans = Math.max(ans, ++t); } else { t = 1; } } for (int i = 1, t = 1; i < nums.length; ++i) { if (nums[i - 1] > nums[i]) { ans = Math.max(ans, ++t); } else { t = 1; } } return ans; } }
C++
class Solution { public: int longestMonotonicSubarray(vector<int>& nums) { int ans = 1; for (int i = 1, t = 1; i < nums.size(); ++i) { if (nums[i - 1] < nums[i]) { ans = max(ans, ++t); } else { t = 1; } } for (int i = 1, t = 1; i < nums.size(); ++i) { if (nums[i - 1] > nums[i]) { ans = max(ans, ++t); } else { t = 1; } } return ans; } };
PYTHON
class Solution: def longestMonotonicSubarray(self, nums): ans = 1 increasing, decreasing = 1, 1 for i in range(1, len(nums)): if nums[i - 1] < nums[i]: increasing += 1 ans = max(ans, increasing) else: increasing = 1 # Reset if monotonicity breaks for i in range(1, len(nums)): if nums[i - 1] > nums[i]: decreasing += 1 ans = max(ans, decreasing) else: decreasing = 1 # Reset if monotonicity breaks return ans
Comments
Post a Comment