C++程式:查詢從起點到終點所需的最少步數


假設我們有一個座標(x, y)。在一個二維網格上,機器人位於(0, 0)位置,想要到達(x, y)。它可以向上、下、左、右移動或停留在當前單元格。它希望以儘可能少的指令到達目的地。我們必須計算所需的步數。

因此,如果輸入類似於x = 3;y = 4,則輸出將為7

步驟

為了解決這個問題,我們將遵循以下步驟:

return x + y + minimum of |x - y|, |x - y + 1|, and |x - y - 1|

示例

讓我們看看下面的實現以更好地理解:

#include <bits/stdc++.h>
using namespace std;

int solve(int x, int y) {
   return x + y + min(abs(x - y), min(abs(x - y + 1), abs(x - y - 1)));
}
int main() {
   int x = 3;
   int y = 4;
   cout << solve(x, y) << endl;
}

輸入

3, 4

輸出

7

更新於:2022年3月3日

699 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告