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]範圍中的非零整數。
class Solution {
public int reachNumber(int target) {
int sum = 0;
int c = 0;
target = Math.abs(target);
//必須要走的數量小于目标數量才能循環
//并且走的數量減去目标數量,是偶數,可以翻轉做到
//舉例子
//假如是差偶數步,可以左走1右走2右走3右走4就到了8
// 如果是正常的話就是1+2+3+4=10
while(sum < target || (sum-target)%2!=0){
c ++;
sum += c;
}
return c;
}
}