# Solving Leetcode Interviews in Seconds with AI: Longest Strictly Increasing or Strictly Decreasing Subarray


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "3105" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> 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 <= 50 1 <= nums[i] <= 50  

	# Explanation
	Here's the breakdown of the solution:

*   **Iterate and Track:** Iterate through the `nums` array, maintaining two counters: one for the length of the current strictly increasing subarray and one for the length of the current strictly decreasing subarray.
*   **Update Counters:** At each element, check if it extends the current increasing or decreasing subarray. If it does, increment the respective counter. If not, reset the counter to 1.
*   **Maximize Length:** Keep track of the maximum length seen so far and update it whenever a longer increasing or decreasing subarray is found.

*   **Runtime Complexity:** O(n), where n is the length of the input array. **Storage Complexity:** O(1).

	
	# Code
	```python
	def longest_subarray(nums):
    """
    Finds the length of the longest subarray of nums which is either strictly increasing or strictly decreasing.
    """
    if not nums:
        return 0

    max_len = 1
    increasing_len = 1
    decreasing_len = 1

    for i in range(1, len(nums)):
        if nums[i] > nums[i - 1]:
            increasing_len += 1
            decreasing_len = 1  # Reset decreasing length
        elif nums[i] < nums[i - 1]:
            decreasing_len += 1
            increasing_len = 1  # Reset increasing length
        else:
            increasing_len = 1
            decreasing_len = 1

        max_len = max(max_len, increasing_len, decreasing_len)

    return max_len
	```
			
