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 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.