Algorithm


Problem Name: 754. Reach a Number

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 from i == 1 to i == numMoves), you take i 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

 

 

Code Examples

#1 Code Example with Javascript Programming

Code - Javascript Programming


const reachNumber = function(target) {
    const tar = Math.abs(target);
    let step = 0;
    let sum = 0;
    while (sum  <  tar) {
        step++;
        sum += step;
    }
    while ((sum - tar) % 2 !== 0) {
        step++;
        sum += step;
    }
    return step;
};
Copy The Code & Try With Live Editor

Input

x
+
cmd
target = 2

Output

x
+
cmd
3

#2 Code Example with Python Programming

Code - Python Programming


class Solution:
    def reachNumber(self, target):
        pos, step, target = 0, 0, abs(target)
        while pos < target or (pos - target) % 2:
            step += 1
            pos += step
        return step
Copy The Code & Try With Live Editor

Input

x
+
cmd
target = 2

Output

x
+
cmd
3
Advertisements

Demonstration


Previous
#753 Leetcode Cracking the Safe Solution in C, C++, Java, JavaScript, Python, C# Leetcode
Next
#756 Leetcode Pyramid Transition Matrix Solution in C, C++, Java, JavaScript, Python, C# Leetcode