Ҳадди аққал ба унсурҳои массив баробар Ҳалли Leetcode  


Сатҳи душворӣ осон
Аксар вақт пурсида мешавад Amazon себ Coursera Маълумот Ҳақиқатан JPMorgan Математика Microsoft Swiggy
алгоритмҳо рамзгузорӣ Бриджберт мусоҳиба омодасозии мусоҳиба LeetCode LeetCodeSolutions Матем

Изҳороти мушкилот  

Дар ин масъала, ба мо як асал ададҳо. Инчунин, ба мо иҷозат дода шудааст, ки дар ин массив маҷмӯи муайяни амалиётро иҷро кунем. Дар як амал, мо метавонем ”n - 1 ″ (ҳама унсурҳо ба ғайр аз ягонтои дигар) унсурҳои массивро 1 зиёд кунем.

Мо бояд шумораи ҳадди ақали амалиётро ёбем, то ҳамаи элементҳои массив баробар бошанд.

мисол

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

 

Ҳадди аққал ба унсурҳои массив баробар Ҳалли LeetcodeпайвандакРавиш (математика)  

Дар ин масъала, душворӣ дар интихоби маҷмӯи рақамҳост, ки шумо мехоҳед 1 зиёд карда, ба ҳамаи унсурҳои массив баробар шавед. Аммо, зиёд кардани 'N - 1' унсурҳо дар массив ба ҳамон 1 кам кардани як унсури массив баробар аст. Ин аз он сабаб аст, ки мо намехоҳем фаҳмем, ки арзиши ҳамаи унсурҳо пас аз баробар шудан чӣ хоҳад буд, балки мо ба ёфтани шумораи ҳаракатҳо манфиатдорем. Ҳоло, ин амалӣ аст, зеро азбаски амалиёти мо маҳз як унсури массивро 1 кам карданист, мо бояд ҳамаи унсурҳои массивро ба унсури минималии дар массив буда табдил диҳем. минбаъд).

Татбиқи ҳаракатҳои ҳадди аққал ба унсурҳои массиви баробар Ҳалли Leetcode

Барномаи 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

Мураккабии вақт

О (Н), N = андозаи массив. Мо тамоми массивро як маротиба тай мекунем.

ҳамчунин нигаред
Маслиҳати Monotonic LeetCode Solution

Мураккабии фазо 

О (1), вақте ки мо дар массив фазои хотираи доимиро истифода мебарем.

1