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

go語(yǔ)言題解LeetCode1299將每個(gè)元素替換為右側(cè)最大元素

 更新時(shí)間:2023年01月03日 10:35:19   作者:劉09k11  
這篇文章主要為大家介紹了go語(yǔ)言LeetCode刷題1299將每個(gè)元素替換為右側(cè)最大元素示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

1299. 將每個(gè)元素替換為右側(cè)最大元素 - 力扣(LeetCode)

給你一個(gè)數(shù)組 arr ,請(qǐng)你將每個(gè)元素用它右邊最大的元素替換,如果是最后一個(gè)元素,用 -1 替換。

完成所有替換操作后,請(qǐng)你返回這個(gè)數(shù)組。

示例 1:

輸入:arr = [17,18,5,4,6,1]
輸出:[18,6,6,6,1,-1]
解釋:
- 下標(biāo) 0 的元素 --> 右側(cè)最大元素是下標(biāo) 1 的元素 (18)
- 下標(biāo) 1 的元素 --> 右側(cè)最大元素是下標(biāo) 4 的元素 (6)
- 下標(biāo) 2 的元素 --> 右側(cè)最大元素是下標(biāo) 4 的元素 (6)
- 下標(biāo) 3 的元素 --> 右側(cè)最大元素是下標(biāo) 4 的元素 (6)
- 下標(biāo) 4 的元素 --> 右側(cè)最大元素是下標(biāo) 5 的元素 (1)
- 下標(biāo) 5 的元素 --> 右側(cè)沒(méi)有其他元素,替換為 -1

示例 2:

輸入:arr = [400]
輸出:[-1]
解釋:下標(biāo) 0 的元素右側(cè)沒(méi)有其他元素。

提示:

1 <= arr.length <= 10^4

1 <= arr[i] <= 10^5

思路分析

從題目可以看出

  • 從右到左遍歷的話,剛好是從遍歷過(guò)的數(shù)中去尋找最大值。
  • 從左到右遍歷的話,那么就需要提前比較還未遍歷的值。

不難看出從右到左遍歷只需要O(n)時(shí)間復(fù)雜度,

從左到右遍歷需要O(n^2)的時(shí)間復(fù)雜度

在這個(gè)題感悟到,其實(shí)有時(shí)候生活中遇到困難了,不妨換個(gè)思維去想一下

也許當(dāng)前困難不過(guò)是對(duì)自己的一種考驗(yàn)

多花點(diǎn)思維思考去解決比用簡(jiǎn)單的惰性思維去“懶”解決要為后續(xù)實(shí)現(xiàn)的節(jié)省更多時(shí)間

AC 代碼

class Solution {
    public int[] replaceElements(int[] arr) {
        int max = -1;
        for (int i = arr.length - 1; i >= 0; i--) {
            int tmp = arr[i];
            arr[i] = max;
            if (tmp > max) {
                max = tmp;
            }
        }
        return arr;
    }
}

Java 百分百 - 將每個(gè)元素替換為右側(cè)最大元素

逆序遍歷罷了

代碼

class Solution {
    public int[] replaceElements(int[] arr) {
       int max = -1;
       int[] ans = new int[arr.length];
       for(int i = arr.length-1;i >= 0;i--){
           int temp = arr[i];
           ans[i] = max;
           max = Math.max(max,temp);
       }
       return ans;
    }
}

從右往左一次遍歷 - 將每個(gè)元素替換為右側(cè)最大元素

從右往左遍歷,先記錄右邊最大值 rightMax 為最后一個(gè)值,向左每次更新 rightMax,使用變量 t 先記住當(dāng)前 arr[i] 就可以了。

class Solution {
    public int[] replaceElements(int[] arr) {
        int rightMax = arr[arr.length - 1];
        arr[arr.length - 1] = -1;
        for (int i = arr.length - 2; i >= 0; i--) {
            int t = arr[i];
            arr[i] = rightMax;
            if (t > rightMax)
                rightMax = t;
        }
        return arr;
    }
}

以上就是go語(yǔ)言題解LeetCode1299將每個(gè)元素替換為右側(cè)最大元素的詳細(xì)內(nèi)容,更多關(guān)于go 元素替換右側(cè)最大元素的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go開(kāi)發(fā)神器Air熱加載的安裝使用探究

    Go開(kāi)發(fā)神器Air熱加載的安裝使用探究

    這篇文章主要介紹了Go開(kāi)發(fā)神器Air熱加載使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Go語(yǔ)言基于HTTP的內(nèi)存緩存服務(wù)的實(shí)現(xiàn)

    Go語(yǔ)言基于HTTP的內(nèi)存緩存服務(wù)的實(shí)現(xiàn)

    這篇文章主要介紹了Go語(yǔ)言基于HTTP的內(nèi)存緩存服務(wù),本程序采用REST接口,支持設(shè)置(Set)、獲取(Get)和刪除(Del)這3個(gè)基本操作,同時(shí)還支持對(duì)緩存服務(wù)狀態(tài)進(jìn)行查詢,需要的朋友可以參考下
    2022-08-08
  • golang內(nèi)存對(duì)齊的概念及案例詳解

    golang內(nèi)存對(duì)齊的概念及案例詳解

    為保證程序順利高效的運(yùn)行,編譯器會(huì)把各種類型的數(shù)據(jù)安排到合適的地址,并占用合適的長(zhǎng)度,這就是內(nèi)存對(duì)齊。本文重點(diǎn)給大家介紹golang內(nèi)存對(duì)齊的概念及案例詳解,感興趣的朋友一起看看吧
    2022-02-02
  • 詳解Golang中日志庫(kù)glog的使用

    詳解Golang中日志庫(kù)glog的使用

    golang/glog?是?C++?版本?google/glog?的?Go?版本實(shí)現(xiàn),基本實(shí)現(xiàn)了原生?glog?的日志格式,下面大家就跟隨小編一起了解一下glog的具體使用吧
    2023-09-09
  • 在Go中構(gòu)建并發(fā)TCP服務(wù)器

    在Go中構(gòu)建并發(fā)TCP服務(wù)器

    今天小編就為大家分享一篇關(guān)于在Go中構(gòu)建并發(fā)TCP服務(wù)器的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • 利用Go語(yǔ)言實(shí)現(xiàn)二叉搜索樹(shù)

    利用Go語(yǔ)言實(shí)現(xiàn)二叉搜索樹(shù)

    二叉樹(shù)是一種常見(jiàn)并且非常重要的數(shù)據(jù)結(jié)構(gòu),在很多項(xiàng)目中都能看到二叉樹(shù)的身影,當(dāng)然它也有很多變種,本文要介紹的是二叉搜索樹(shù)的實(shí)現(xiàn),希望對(duì)大家有所幫助
    2023-07-07
  • go語(yǔ)言實(shí)現(xiàn)字符串與其它類型轉(zhuǎn)換(strconv包)

    go語(yǔ)言實(shí)現(xiàn)字符串與其它類型轉(zhuǎn)換(strconv包)

    strconv包是Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)的一部分,主要提供字符串與基本數(shù)據(jù)類型之間的轉(zhuǎn)換功能,使用strconv包可以方便地在不同類型之間進(jìn)行轉(zhuǎn)換,滿足日常編程中的需求,感興趣的可以了解一下
    2024-10-10
  • Go語(yǔ)言對(duì)JSON數(shù)據(jù)進(jìn)行序列化和反序列化

    Go語(yǔ)言對(duì)JSON數(shù)據(jù)進(jìn)行序列化和反序列化

    這篇文章介紹了Go語(yǔ)言對(duì)JSON數(shù)據(jù)進(jìn)行序列化和反序列化的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • golang 如何用反射reflect操作結(jié)構(gòu)體

    golang 如何用反射reflect操作結(jié)構(gòu)體

    這篇文章主要介紹了golang 用反射reflect操作結(jié)構(gòu)體的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Go Struct結(jié)構(gòu)體的具體實(shí)現(xiàn)

    Go Struct結(jié)構(gòu)體的具體實(shí)現(xiàn)

    Go語(yǔ)言中通過(guò)結(jié)構(gòu)體的內(nèi)嵌再配合接口比面向?qū)ο缶哂懈叩臄U(kuò)展性和靈活性,本文主要介紹了Go Struct結(jié)構(gòu)體的具體實(shí)現(xiàn),感興趣的可以了解一下
    2023-03-03

最新評(píng)論

益阳市| 广汉市| 民县| 和政县| 龙岩市| 民勤县| 勃利县| 清镇市| 科尔| 金山区| 饶平县| 曲阜市| 尼勒克县| 宁德市| 榆社县| 富裕县| 苏州市| 驻马店市| 宿迁市| 内黄县| 十堰市| 榆树市| 柏乡县| 宁蒗| 阿拉尔市| 岐山县| 自治县| 恩施市| 新沂市| 江津市| 慈溪市| 军事| 乃东县| 沈丘县| 宁德市| 年辖:市辖区| 喀喇沁旗| 阿克陶县| 威宁| 新民市| 丁青县|