สมมติว่าเรามีสองพิกัด (x1, y1) และ (x2, y2) หุ่นยนต์อยู่ที่จุด (x1, y1) และต้องการไปที่จุด (x2, y2) ในขั้นตอนเดียว หุ่นยนต์สามารถเคลื่อนที่ไปยังเซลล์หนึ่งไปยัง 8 พิกัดที่อยู่ติดกัน เราต้องหาจำนวนขั้นตอนขั้นต่ำที่จำเป็นในการไปถึงตำแหน่งสุดท้าย
ดังนั้น ถ้าอินพุตเป็น x1 =3; y1 =4; x2 =6; y2 =1; แล้วผลลัพธ์จะเป็น 3 เพราะ
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
return maximum of |x2 - x1| and |y2 - y1|
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h> using namespace std; int solve(int x1, int y1, int x2, int y2){ return max(abs(x2 - x1), abs(y2 - y1)); } int main(){ int x1 = 3; int y1 = 4; int x2 = 6; int y2 = 1; cout << solve(x1, y1, x2, y2) << endl; }
อินพุต
3, 4, 6, 1
ผลลัพธ์
3