কম্পিউটার টিউটোরিয়াল

C++-এ মিনিমাম মুভস টু ইকুয়াল অ্যারে এলিমেন্টস (Minimum Moves to Equal Array Elements)


একটি অ্যারে দেওয়া আছে। একটি মুভ মানে n-1টি উপাদান ১ করে বাড়ানো। সব উপাদান সমান করার জন্য ন্যূনতম মুভ কত লাগবে তা বের করুন।

উদাহরণ: [3,2,3,4] হলে আউটপুট ৪।

সমাধানের ধাপসমূহ

  • n := nums.size()।
  • যদি n == 0, 0 রিটার্ন করুন।
  • অ্যারে সর্ট করুন।
  • ans := 0।
  • প্রতিটি i এর জন্য ans += nums[i] - nums[0]।
  • ans রিটার্ন করুন।

C++ কোড উদাহরণ

#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;
    }
};

int main() {
    Solution ob;
    vector<int> v = {3,2,3,4};
    cout << ob.minMoves(v);
    return 0;
}

ইনপুট

{3,2,3,4}

আউটপুট

4
  1. C++-এ নাইটের ন্যূনতম মুভ গণনা করুন

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

  3. C++ ব্যবহার করে অ্যারের সব এলিমেন্ট সমান করতে ন্যূনতম মুভ সংখ্যা

  4. পাইথনে অ্যারে উপাদানগুলো সমান করার জন্য ন্যূনতম মুভ (Minimum Moves to Equal Array Elements II)