754. 到達終點數字

在一根無限長的數軸上,你站在0的位置。終點在target的位置。

每次你可以選擇向左或向右移動。第 n 次移動(從 1 開始),可以走 n 步。

返回到達終點需要的最小移動次數。

示例 1:

輸入: target = 3
輸出: 2
解釋:
第一次移動,從 0 到 1 。
第二次移動,從 1 到 3 。

示例 2:

輸入: target = 2
輸出: 3
解釋:
第一次移動,從 0 到 1 。
第二次移動,從 1 到 -1 。
第三次移動,從 -1 到 2 。

注意:

  • target是在[-10^9, 10^9]範圍中的非零整數。

Code:

class Solution {
    public int reachNumber(int target) {
        int abs = Math.abs(target);
        int res = 0,i = 1;
        for (; res < abs; i++) {
            res += i;
        }
        i--;
        if ((res-abs)%2==0) {
            return i;
        }else{
            if(i%2==0){
                return i+1;
            }else{
                return i+2;
            }
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章