Leetcode 754 到達終點數字 C

2021-10-08 18:24:20 字數 741 閱讀 8445

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

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

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

示例 1:

輸入: target = 3

輸出: 2

解釋:第一次移動,從 0 到 1 。

第二次移動,從 1 到 3 。

示例 2:

輸入: target = 2

輸出: 3

解釋:第一次移動,從 0 到 1 。

第二次移動,從 1 到 -1 。

第三次移動,從 -1 到 2 。

注意:

我們先考慮終點在正半軸上的情況,

我們先盡可能的走到終點,也就是每次都向右走。若正好到終點則沒問題;如果超過終點,則說明我們有一些是需要向左走,而這樣會使我們走的路程缺少了2倍,比如說第二部我們應該往左走,也就是-2,但最初我們是往右走的,也就是+2,因此就少了4步。所以當我們超過終點時,只要sum值-target是乙個偶數,則說明我們稍微調整下方向,就已經能到終點了。

詳細過程見**

int

reachnumber

(int target)

return ans;

}

leetcode 754 到達終點數字

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

LeetCode754 到達終點數字

在一根無限長的數軸上,你站在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步均向右走,如果恰好得到...