কম্পিউটার

ন্যূনতম সময় C++ এ সমস্ত পয়েন্ট পরিদর্শন করুন


ধরুন একটি অ্যারে হিসাবে কিছু পয়েন্ট দেওয়া আছে। সমস্ত পয়েন্ট পরিদর্শন করার জন্য আমাদের সেকেন্ডে সর্বনিম্ন সময় বের করতে হবে। কিছু শর্ত আছে।

  • এক সেকেন্ডে, এটি উল্লম্বভাবে, অনুভূমিকভাবে এবং তির্যকভাবে চলতে পারে
  • আমাদের পয়েন্টগুলিকে একই ক্রমে দেখতে হবে যেভাবে তারা অ্যারেতে উপস্থিত হয়৷

সুতরাং যদি পয়েন্টগুলি হয় [(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

  1. C++ এ একটি গাছে সমস্ত আপেল সংগ্রহ করার ন্যূনতম সময়

  2. C++ এ ন্যূনতম নাইট মুভ

  3. C++ এ সমস্ত কর্মচারীদের জানানোর জন্য সময় প্রয়োজন

  4. C++-এ ন্যূনতম ফ্লিপ বাম দিকে 1s এবং ডানে 0s করতে হবে