ধরুন একটি অ্যারে হিসাবে কিছু পয়েন্ট দেওয়া আছে। সমস্ত পয়েন্ট পরিদর্শন করার জন্য আমাদের সেকেন্ডে সর্বনিম্ন সময় বের করতে হবে। কিছু শর্ত আছে।
- এক সেকেন্ডে, এটি উল্লম্বভাবে, অনুভূমিকভাবে এবং তির্যকভাবে চলতে পারে
- আমাদের পয়েন্টগুলিকে একই ক্রমে দেখতে হবে যেভাবে তারা অ্যারেতে উপস্থিত হয়৷ ৷
সুতরাং যদি পয়েন্টগুলি হয় [(1, 1), (3, 4), (-1, 0)], তাহলে আউটপুট হবে 7। আমরা যদি সংক্ষিপ্ততম রুটের জন্য ক্রমটি পরীক্ষা করি তবে ক্রমটি হবে (1, 1) ), (2, 2), (3, 3), (3, 4), (2, 3), (1, 2), (0, 1), (-1, 0)
এটি সমাধান করার জন্য আমরা পরপর দুটি বিন্দুর সর্বাধিক x স্থানাঙ্ক পার্থক্য এবং পরপর দুটি বিন্দুর y স্থানাঙ্ক পার্থক্য খুঁজে পাব। সর্বোচ্চ মান একসাথে যোগ করা হবে।
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; class Solution { public: int minTimeToVisitAllPoints(vector<vector<int>>& p) { int ans = 0; int n = p.size(); for(int i = 1; i < n; i++){ ans += max(abs(p[i][0] - p[i-1][0]), abs(p[i][1] - p[i-1] [1])); } return ans; } }; main(){ Solution ob; vector<vector<int>> c = {{1,1},{3,4},{-1,0}}; cout << ob.minTimeToVisitAllPoints(c); }
ইনপুট
[[1,1],[3,4],[-1,0]]
আউটপুট
7