ወደ ድርድር ንጥረ ነገሮች እኩልነት አነስተኛ እንቅስቃሴዎች Leetcode መፍትሔ  


የችግር ደረጃ ቀላል
ውስጥ በተደጋጋሚ ተጠየቀ አማዞን ፓም Coursera ፋርስት በእርግጥም JPMorgan የሂሳብ ስራዎች የ Microsoft Swiggy
ስልተ ምስጠራ ስካይፕሬጅ ቃለ መጠይቅ interviewprep ሊት ኮድ LeetCodeSolutions ሒሳብ

የችግሩ መግለጫ  

በዚህ ችግር ውስጥ እኛ አንድ ተሰጠን ደርድር የቁጥር ቁጥሮች። እንዲሁም ፣ በዚህ ድርድር ላይ የተወሰኑ የሥራ ክንዋኔዎችን እንድናከናውን ተፈቅዶልናል። በአንድ ክዋኔ ውስጥ “n - 1 ″ (ከማንኛውም በስተቀር ሁሉም ንጥረ ነገሮች) ንጥረ ነገሮችን በ 1 ማደግ እንችላለን።

ሁሉንም የድርጅት አካላት እኩል ለማድረግ የሚያስፈልጉትን አነስተኛውን የአሠራር ብዛት ማግኘት ያስፈልገናል።

ለምሳሌ

Array = {1 , 2 , 3}
3
Array = {1 , 1 , 1}

 

ወደ ድርድር ንጥረ ነገሮች እኩልነት አነስተኛ እንቅስቃሴዎች Leetcode መፍትሔአቀራረብ (ሂሳብ)  

በዚህ ችግር ውስጥ ችግሩ ሁሉንም የድርድር አካላት እኩል ለማድረግ በ 1 ለመጨመር የሚፈልጓቸውን የቁጥሮች ስብስብ መምረጥ ነው። ሆኖም ፣ በድርድሩ ውስጥ ‹N - 1› ንጥረ ነገሮችን መጨመር አንድ ድርድር አባላትን በ 1 ከመቀነስ ጋር ተመሳሳይ ነው ፡፡ ይህ የሆነበት ምክንያት የሁሉም ንጥረ ነገሮች እኩል ከሆኑ በኋላ ዋጋቸው ምን እንደሚሆን ለማወቅ ስለማንፈልግ ነው ፣ ይልቁንም የእንቅስቃሴዎቹን ብዛት ለማግኘት ፍላጎት አለን። አሁን ይህ ተግባራችን በድርድሩ ውስጥ አንድን ንጥረ ነገር በትክክል በ 1 እንዲቀንሰው ስለሚያደርግ ፣ በድርድሩ ውስጥ ያሉትን ሁሉንም ንጥረ ነገሮች በድርድሩ ውስጥ ወዳለው አነስተኛ አካል መለወጥ አለብን (ማናቸውንም መቀነስ አያስፈልገውም) ፡፡ ተጨማሪ)

ለእኩል ድርድር ንጥረ ነገሮች የሌትኮድ መፍትሔ የአነስተኛ እንቅስቃሴዎች መተግበር

C ++ ፕሮግራም

#include <bits/stdc++.h>

using namespace std;

int minMoves(vector <int> nums) {
    int mn = *min_element(nums.begin() , nums.end()) , moves = 0;
    for(int &i : nums)
        moves += i - mn;
    return moves;
}

int main() {
    vector <int> nums = {1 , 2 , 3};
    cout << minMoves(nums) << endl;
    return 0;
}

የጃቫ ፕሮግራም

import java.lang.*;
import java.util.*;

class min_moves {
    public static void main(String args[]) {
        int[] nums = {1 , 2 , 3};
        System.out.println(minMoves(nums));
    }

    public static int minMoves(int[] nums) {
        if(nums.length == 0)
            return 0;
        int mn = nums[0];
        for(int i = 0 ; i < nums.length ; i++) {
            mn = Math.min(mn , nums[i]);
        }

        int moves = 0;
        for(int i = 0 ; i < nums.length ; i++) {
            moves += nums[i] - mn;
        }

        return moves;
    }
}
3

ወደ እኩል ድርድር ንጥረ ነገሮች Leetcode መፍትሄ የመፍትሄዎች ጥቃቅን ለውጦች ውስብስብነት ትንተና

የጊዜ ውስብስብነት

ኦ (ኤን)፣ N = የአቀማመጥ መጠን። መላውን ድርድር አንድ ጊዜ እናቋርጣለን።

ተመልከት
ሞኖቶኒክ ድርድር LeetCode መፍትሔ

የቦታ ውስብስብነት 

ኦ (1)፣ በድርድሩ ውስጥ የማያቋርጥ የማስታወሻ ቦታ እንደምንጠቀም።