LeetCode754 到達終點數字

2021-09-24 12:22:30 字數 855 閱讀 8606

在一根無限長的數軸上,你站在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]範圍中的非零整數。

解析:思路是,從1開始累加,找到和為target的位置。如果找不到和為target的位置,則繼續向後加,如果和sum-target對2求模為0,則找到了正確的位置。因為,差值為偶數,可以將差值的一半改變方向。考慮到負數的情況,題目分為正數和負數兩種情況。

**:

int reachnumber(int target) 

if(sum==target)

return abs(++start);

while((abs(sum-target))%2==1)

return abs(++start);

}}

他山之石:

他直接把target取絕對值。

int reachnumber(int target)

if ((sum - target) % 2 == 0)

else

else

} }

leetcode 754 到達終點數字

在一根無限長的數軸上,你站在0的位置。終點在target的位置。每次你可以選擇向左或向右移動。第 n 次移動 從 1 開始 可以走 n 步。返回到達終點需要的最小移動次數。示例 1 輸入 target 3 輸出 2 解釋 第一次移動,從 0 到 1 第二次移動,從 1 到 3 示例 2 輸入 tar...

leetcode 754 到達終點數字

題目 在一根無限長的數軸上,你站在0的位置。終點在target的位置。每次你可以選擇向左或向右移動。第 n 次移動 從 1 開始 可以走 n 步。返回到達終點需要的最小移動次數 class solution return i 1 target的正負與答案無關,故取正,假設前n步均向右走,如果恰好得到...

Leetcode 754 到達終點數字 C

在一根無限長的數軸上,你站在0的位置。終點在target的位置。每次你可以選擇向左或向右移動。第 n 次移動 從 1 開始 可以走 n 步。返回到達終點需要的最小移動次數。示例 1 輸入 target 3 輸出 2 解釋 第一次移動,從 0 到 1 第二次移動,從 1 到 3 示例 2 輸入 tar...