LeetCode 1658
A simple problem on the first approach that I have to look at.
Let’s see this as two pointers.
One starting from the index 0 and the other index will start from len-1.
int begin = 0 ; int end = len - 1;
If there is no solution we return -1
return -1;
This will track the number of edits
int count = 0;
The first step is to check if arr[begin] is less than arr[end],
if the arr[begin] is higher than arr[end] but less than x then:
begin++; x -= arr[begin]; count++;
else if arr[end] is higher than arr[begin] but less than x then: end–; x -= arr[end]; count++;
else if begin == end and x is less than arr[begin]: return -1;
else if begin == end and x is greater than arr[begin]: return -1;
else if begin==end and x is equal to arr[begin]; x-=arr[begin];count++; return count;
This should all be inside a loop that should last until…
- Begin is equal to end or
- x == 0