754. Reach a Number

Posted bernieloveslife

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了754. Reach a Number相关的知识,希望对你有一定的参考价值。

You are standing at position 0 on an infinite number line. There is a goal at position target.

On each move, you can either go left or right. During the n-th move (starting from 1), you take n steps.

Return the minimum number of steps required to reach the destination.

Example 1:

Input: target = 3
Output: 2
Explanation:
On the first move we step from 0 to 1.
On the second step we step from 1 to 3.

Example 2:

Input: target = 2
Output: 3
Explanation:
On the first move we step from 0 to 1.
On the second move we step  from 1 to -1.
On the third move we step from -1 to 2.

Note:

  • target will be a non-zero integer in the range [-10^9, 10^9].
class Solution:
    def reachNumber(self, target):
        """
        :type target: int
        :rtype: int
        """
        t = abs(target)
        n,sum = 0,0
        while t>sum:
            n += 1
            sum += n
        if t==sum:
            return n
        remain = sum-target
        if remain%2==0:
            return n
        else:
            return n+1 if(n%2)==0 else n+2

完全是找数字规律的题目,如果用dfs来搜索的话内存会超。

参考: https://blog.csdn.net/u014688145/article/details/78948918

以上是关于754. Reach a Number的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] Reach a Number 达到一个数字

到达一个数 Reach a Number

[GeeksForGeeks] Count Number of ways to reach a given score in a game

LeetCode 0754. 到达终点数字

js简洁代码片段

android小知识点代码片段