কম্পিউটার

C++ এ সমান অ্যারে এলিমেন্টে ন্যূনতম সরানো


ধরুন আমাদের কাছে n আকারের একটি অ্যারে আছে, আমাদের সমস্ত অ্যারের উপাদানগুলিকে একই করার জন্য প্রয়োজনীয় নূন্যতম সংখ্যক চাল খুঁজে বের করতে হবে, যেখানে একটি সরানোর অর্থ হল n - 1 উপাদানগুলিকে 1 দ্বারা বৃদ্ধি করা৷

সুতরাং, ইনপুট যদি [3,2,3,4] এর মত হয়, তাহলে আউটপুট হবে 4।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n :=সংখ্যার আকার

  • যদি n 0 এর সমান হয়, তাহলে −

    • রিটার্ন 0

  • অ্যারের সংখ্যাগুলি সাজান

  • উত্তর :=0

  • আরম্ভ করার জন্য i :=0, যখন i

    • ans :=ans + nums[i] - nums[0>

  • উত্তর ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int minMoves(vector<int>& nums) {
      int n = nums.size();
      if (n == 0)
         return 0;
      sort(nums.begin(), nums.end());
      int ans = 0;
      for (int i = 0; i < n; i++) {
         ans += nums[i] - nums[0];
      }
      return ans;
   }
};
main(){
   Solution ob;
   vector<int> v = {3,2,3,4};
   cout << (ob.minMoves(v));
}

ইনপুট

{3,2,3,4}

আউটপুট

4

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

  2. C++ ব্যবহার করে সমস্ত উপাদান 0 করতে একটি অ্যারেতে ন্যূনতম সংখ্যক অপারেশন।

  3. C++ ব্যবহার করে সমস্ত উপাদানকে সমান করতে ন্যূনতম সংখ্যা।

  4. পাইথনে ন্যূনতম সরানো সমান অ্যারে উপাদান II এ