Барабар массив элементтерине баруучу минимум Leetcode Solution


Кыйынчылык деңгээли жеңил
Көп суралган Amazon алма Coursera Factset Чындыгында JPMorgan Mathworks Microsoft Swiggy
Drawbridge Math

Маселени билдирүү

Бул маселеде, бизге берилет согуштук тизме бүтүн сандар. Ошондой эле, бул массивде белгилүү бир операцияларды жүргүзүүгө уруксат берилген. Бир операцияда ”n - 1 incre массивиндеги элементтерди (баарынан башка элементтерди) 1 көбөйтүүгө болот.

Бардык массив элементтерин бирдей кылуу үчүн минималдуу операцияларды табышыбыз керек.

мисал

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

 

Барабар массив элементтерине баруучу минимум Leetcode SolutionЫкма (Математика)

Бул маселеде, массивдин бардык элементтерине теңөө үчүн, 1ге көбөйтүүнү каалаган сандардын топтомун тандоо кыйынга турат. Бирок, Массивдеги 'N - 1' элементтерин көбөйтүү, бир массив элементтерин 1ге азайтуу менен бирдей. Себеби, биз бирдей болгондон кийин бардык элементтердин мааниси кандай болорун билгибиз келбейт, тескерисинче, кыймылдын санын табууга кызыкдарбыз. Эми интуитивдүү нерсе, биздин иш массивдеги бир элементти 1ге азайтуу болгондуктан, массивдеги бардык элементтерди массивдеги минималдуу элементке которушубуз керек (эч кандай азайтуунун кереги жок). андан ары).

Leitcode Solution элементине бирдей массив элементтерин минималдуу жылдырууну ишке ашыруу

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

Java программасы

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 Solution

Убакыт татаалдыгы

O (N), N = массивдин көлөмү. Бардык массивди бир жолу айланып өтөбүз.

Космостун татаалдыгы 

O (1), биз массивде туруктуу эс мейкиндигин колдонгондой эле.