754. Reach a Number (Solution || Leetcode medium|| Java)
You are standing at position 0
on an infinite number line. There is a destination at position target
.
You can make some number of moves numMoves
so that:
- On each move, you can either go left or right.
- During the
ith
move (starting fromi == 1
toi == numMoves
), you takei
steps in the chosen direction.
Given the integer target
, return the minimum number of moves required (i.e., the minimum numMoves
) to reach the destination.
Example 1:
Input: target = 2
Output: 3
Explanation:
On the 1st move, we step from 0 to 1 (1 step).
On the 2nd move, we step from 1 to -1 (2 steps).
On the 3rd move, we step from -1 to 2 (3 steps).
Example 2:
Input: target = 3
Output: 2
Explanation:
On the 1st move, we step from 0 to 1 (1 step).
On the 2nd move, we step from 1 to 3 (2 steps).
Constraints:
-109 <= target <= 109
target != 0
SOLUTION:
class Solution {
public int reachNumber(int target) {
target = Math.abs(target);//this method will give us the absolute positive value of target, basically it means if the target is positive it will remain positive and if it is negative it will become positive
int steps = 0;
int sum = 0;
while(sum < target){
steps++;
sum += steps;
}
while((sum — target)%2 != 0){
steps++;
sum += steps;
}
return steps;
}
}
Thank you for reading. If you have any queries, then lease let me know in the comment section.