मान लें कुछ बिंदु एक एरे के रूप में दिए गए हैं। हमें सभी बिंदुओं को देखने में लगने वाले न्यूनतम समय को सेकंड में ढूंढना है। कुछ शर्तें हैं।
- एक सेकंड में, यह लंबवत, क्षैतिज और विकर्ण रूप से चल सकता है
- हमें बिंदुओं को उसी क्रम में देखना है जैसे वे एरे में दिखाई देते हैं।
तो यदि बिंदु [(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