
Sponsored
Sponsored
After sorting the array, our potential strategy is to focus on bridging the maximum and minimum gap by controlling possible breakpoints where the boundary conditions for minimum and maximum flip due to the presorted state.
Time Complexity: O(n log n) due to the sorting operation. Space Complexity: O(1) if we ignore input space.
1def smallestRangeII(nums, k):
2 nums.sort()
3 result = nums[-1] - nums[0]
4 for i in range(len(nums) - 1):
5 high = max(nums[i] + k, nums[-1] - k)
6 low = min(nums[0] + k, nums[i + 1] - k)
7 result = min(result, high - low)
8 return result
9
10nums = [1, 3, 6]
11k = 3
12print(smallestRangeII(nums, k)) # Output: 3This Python code focuses on calculating different potential optimal ranges by adjusting endpoints dynamically around sorted points with ±k considerations.
A slight variation that considers minimizing and maximizing simultaneously, with the goal of finding directly altered extremes without sequence traversals.
Time Complexity: O(n log n), Space Complexity: O(1) for array due to in-place.
1#include
With sorted nums, this approach focuses on defining logical min/max around increments/decrements that have the smallest scope impact, using the basic alternative end transforms.