Skip to content

Latest commit

 

History

History
17 lines (9 loc) · 1.26 KB

File metadata and controls

17 lines (9 loc) · 1.26 KB

Time Complexity (Big O Time):

  1. The program first iterates backward through the array to find the first element i where nums[i] < nums[i+1]. This operation takes O(n) time, where n is the length of the array.

  2. If such an element i is found, the program then iterates backward again to find the smallest element j to the right of i such that nums[j] > nums[i]. This operation also takes O(n) time, where n is the length of the array.

  3. After finding i and j, the program swaps these two elements, which takes constant time O(1).

  4. Finally, the program reverses the subarray to the right of i (from index i+1 to the end of the array), which takes O(n) time in the worst case.

Overall, the time complexity of the program is dominated by the two linear scans through the array, so it's O(n), where n is the length of the input array nums.

Space Complexity (Big O Space):

The space complexity of the program is O(1) because it uses a constant amount of additional space for variables like i, j, and temp. Regardless of the size of the input array, the space used by these variables remains constant.

In summary, the time complexity of the provided program is O(n), and the space complexity is O(1), where n is the length of the input array nums.