Giả sử chúng ta có một tọa độ (x, y). Trên lưới 2D, rô bốt đang ở vị trí (0, 0) và muốn tiếp cận (x, y). Nó có thể di chuyển lên, xuống, sang trái, sang phải hoặc ở tại ô hiện tại. Nó muốn đến đích với các lệnh tối thiểu nhất có thể. Chúng tôi phải đếm số bước cần thiết.
Vì vậy, nếu đầu vào là x =3; y =4, thì đầu ra sẽ là 7
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
return x + y + minimum of |x - y|, |x - y + 1|, and |x - y - 1|
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#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;
} Đầu vào
3, 4
Đầu ra
7