最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言題解LeetCode453最小操作次數(shù)使數(shù)組元素相等

 更新時間:2022年12月30日 14:07:41   作者:劉09k11  
這篇文章主要為大家介紹了go語言題解LeetCode453最小操作次數(shù)使數(shù)組元素相等示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

原題鏈接 :

453. 最小操作次數(shù)使數(shù)組元素相等 - 力扣(LeetCode) (leetcode-cn.com)

給你一個長度為 n 的整數(shù)數(shù)組,每次操作將會使 n - 1 個元素增加 1 。返回讓數(shù)組所有元素相等的最小操作次數(shù)。

示例 1:

輸入:nums = [1,2,3]
輸出:3
解釋:
只需要3次操作(注意每次操作會增加兩個元素的值):
[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]

示例 2:

輸入:nums = [1,1,1]
輸出:0

提示:

n == nums.length

1 <= nums.length <= 10^5

-10^9 <= nums[i] <= 10^9

答案保證符合 32-bit 整數(shù)

思路分析

首先換個角度理解題目,將數(shù)組按順序表示為高度為nums[i]寬度為1的柱子,每次移動i的含義為除i外的所有柱子高度加1,這樣i柱子與其他柱子的相對高度減1,可將移動i理解為將i柱子高度減1,其他柱子不變。于是題目變?yōu)?,求將所有柱子減少為高度相等的柱子所需移動次數(shù)。由于每次都只能減少某根柱子的高度1,所以最少要移動sum(nums[i]-min(nums))次。

在遍歷nums的過程中,如果nums[i]大于之前的最小值,則nums[i]-min為需要減少的高度;

如果nums[i]小于之前的最小值,則需把前面沒有減少的高度i*(min-nums[i]),一次減掉。

AC 代碼

func minMoves(nums []int) int {
    min := 1<<31 - 1
    sum := 0
    for i := range nums {
        if nums[i] >= min {
            sum += (nums[i]-min)
        } else {
            sum += i * (min-nums[i])
            min = nums[i]
        }
    }
    return sum
}

小結(jié)

這道題主要理解題意之后,轉(zhuǎn)換一下就簡單了。

只需遍歷數(shù)組一次即可 - 最小操作次數(shù)使數(shù)組元素相等

遍歷數(shù)組一次

解題思路

對于要使得數(shù)組所有元素相等這個最終目標(biāo)而言,將n-1個元素加一其實(shí)等價于將剩下的那個元素減一,因此只需要將所有元素進(jìn)行減一操作直到等于數(shù)組中最小元素即可。所以最終的答案就是所有元素與最小元素的差值之和。

代碼

class Solution {
    public int minMoves(int[] nums) {
        if (nums.length<=1)
            return 0;
        int sum=0,min=Integer.MAX_VALUE;
        int base = nums[0];
        for (int num:nums){
            sum+=num-base;
            min=Integer.min(min,num);
        }
        return sum+(base-min)*nums.length;
    }
}

強(qiáng)行找規(guī)律

解題思路

等于排序數(shù)組除第一位以外的和減去數(shù)組長度減1乘以數(shù)組第一個數(shù)

代碼

class Solution:
    def minMoves(self, nums: List[int]) -> int:
        nums.sort()
        return sum(nums[1:])-(len(nums)-1)*nums[0]

以上就是go語言題解LeetCode453最小操作次數(shù)使數(shù)組元素相等的詳細(xì)內(nèi)容,更多關(guān)于go最小操作數(shù)組元素相等的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • GoFrame?gmap遍歷hashmap?listmap?treemap使用技巧

    GoFrame?gmap遍歷hashmap?listmap?treemap使用技巧

    這篇文章主要為大家介紹了GoFrame?gmap遍歷hashmap?listmap?treemap使用技巧的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Go設(shè)計(jì)模式之觀察者模式講解和代碼示例

    Go設(shè)計(jì)模式之觀察者模式講解和代碼示例

    觀察者是一種行為設(shè)計(jì)模式, 允許一個對象將其狀態(tài)的改變通知其他對象,觀察者模式提供了一種作用于任何實(shí)現(xiàn)了訂閱者接口的對象的機(jī)制, 可對其事件進(jìn)行訂閱和取消訂閱,本文就通過代碼示例給大家詳細(xì)介紹一下Go的觀察者模式,需要的朋友可以參考下
    2023-07-07
  • Go 并發(fā)編程Goroutine的實(shí)現(xiàn)示例

    Go 并發(fā)編程Goroutine的實(shí)現(xiàn)示例

    Go語言中的并發(fā)編程主要通過Goroutine和Channel來實(shí)現(xiàn),本文就來介紹一下Go 并發(fā)編程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 利用Go語言實(shí)現(xiàn)在終端繪制小兔子

    利用Go語言實(shí)現(xiàn)在終端繪制小兔子

    這篇文章主要為大家詳細(xì)介紹了如何利用Go語言實(shí)現(xiàn)在終端繪制小兔子來給大家拜個早年,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-01-01
  • Golang中context庫的高級應(yīng)用

    Golang中context庫的高級應(yīng)用

    context庫不僅對于提升代碼的效率和性能至關(guān)重要,而且還幫助開發(fā)者在復(fù)雜的系統(tǒng)中保持代碼的清晰和可維護(hù)性,下面我們就來看看context庫的高級應(yīng)用吧
    2024-01-01
  • Go?Excelize?API源碼閱讀Close及NewSheet方法示例解析

    Go?Excelize?API源碼閱讀Close及NewSheet方法示例解析

    這篇文章主要為大家介紹了Go?Excelize?API源碼閱讀Close及NewSheet方法示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go語言通道之緩沖通道

    Go語言通道之緩沖通道

    這篇文章介紹了Go語言通道之緩沖通道,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Go高級特性探究之對象比較詳解

    Go高級特性探究之對象比較詳解

    在go語言中,要比較兩個對象是否完全相同,我們可以使用三種方法,這篇文章主要為大家介紹了這三種方法的具體實(shí)現(xiàn),需要的可以參考一下
    2023-06-06
  • Go語言實(shí)現(xiàn)JSON解析的方法詳解

    Go語言實(shí)現(xiàn)JSON解析的方法詳解

    在日常項(xiàng)目中,使用Json格式進(jìn)行數(shù)據(jù)封裝是比較常見的操作。本文將詳細(xì)講解如何利用Go語言實(shí)現(xiàn)JSON的解析,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-04-04
  • 深入解析Go語言編程中slice切片結(jié)構(gòu)

    深入解析Go語言編程中slice切片結(jié)構(gòu)

    這篇文章主要介紹了Go語言編程中slice切片結(jié)構(gòu),其中Append方法的用法介紹較為詳細(xì),需要的朋友可以參考下
    2015-10-10

最新評論

大连市| 天镇县| 开封市| 霍林郭勒市| 南漳县| 固安县| 万荣县| 巴塘县| 乌苏市| 冀州市| 道真| 墨玉县| 永丰县| 永川市| 罗定市| 鲜城| 黔西县| 益阳市| 科技| 吕梁市| 金门县| 龙游县| 阿拉善右旗| 玉林市| 资溪县| 元朗区| 榆中县| 株洲县| 阿巴嘎旗| 囊谦县| 陆丰市| 安义县| 高碑店市| 隆子县| 仙桃市| 神池县| 利津县| 广州市| 惠州市| 萝北县| 鸡东县|