สมมติว่าเรามีพิกัด (x, y) บนตาราง 2D หุ่นยนต์อยู่ที่ตำแหน่ง (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