欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

題目描述

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

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

完成所有替換操作后,請你返回這個數(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è)沒有其他元素,替換為 -1

示例 2:

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

提示:

1 <= arr.length <= 10^4

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

思路分析

從題目可以看出

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

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

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

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

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

多花點(diǎ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 百分百 - 將每個元素替換為右側(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;
    }
}

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

從右往左遍歷,先記錄右邊最大值 rightMax 為最后一個值,向左每次更新 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語言題解LeetCode1299將每個元素替換為右側(cè)最大元素的詳細(xì)內(nèi)容,更多關(guān)于go 元素替換右側(cè)最大元素的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • golang協(xié)程與線程區(qū)別簡要介紹

    golang協(xié)程與線程區(qū)別簡要介紹

    這篇文章主要介紹了golang協(xié)程與線程區(qū)別簡要介紹,進(jìn)程是操作系統(tǒng)資源分配的基本單位,是程序運(yùn)行的實(shí)例,線程是操作系統(tǒng)調(diào)度到CPU中執(zhí)行的基本單位
    2022-06-06
  • 詳解Go語言中數(shù)組,切片和映射的使用

    詳解Go語言中數(shù)組,切片和映射的使用

    Arrays (數(shù)組), Slices (切片) 和 Maps (映射) 是常見的一類數(shù)據(jù)結(jié)構(gòu)。這篇文章將為大家詳細(xì)介紹一下Go語言中數(shù)組,切片和映射的使用,感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • go json轉(zhuǎn)換實(shí)踐中遇到的坑

    go json轉(zhuǎn)換實(shí)踐中遇到的坑

    在使用 go 語言開發(fā)過程中,經(jīng)常需要使用到 json 包來進(jìn)行 json 和 struct 的互相轉(zhuǎn)換,這篇文章主要介紹了go json轉(zhuǎn)換實(shí)踐中遇到的坑,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-12-12
  • 6行代碼快速解決golang TCP粘包問題

    6行代碼快速解決golang TCP粘包問題

    在用golang開發(fā)人工客服系統(tǒng)的時(shí)候碰到了粘包問題,那么什么是粘包呢?下面這篇文章主要給大家介紹了關(guān)于如何通過6行代碼快速解決golang TCP粘包問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Golang巧用defer進(jìn)行錯誤處理的方法

    Golang巧用defer進(jìn)行錯誤處理的方法

    錯誤處理是程序的重要組成部分,有效且優(yōu)雅的處理錯誤是大多數(shù)程序員的追求,下面這篇文章主要給大家介紹了關(guān)于Golang中巧用defer進(jìn)行錯誤處理的方法,文中通過示例介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • Golang中的泛型你真的了解嗎

    Golang中的泛型你真的了解嗎

    Golang?在?1.18?版本更新后引入了泛型,這是一個重要的更新,Gopher?萬眾矚目,為?Golang?帶來了更多的靈活性和可重用性,今天,我們將深入探討泛型的概念、為什么需要泛型、泛型的語法,并探討如何在實(shí)踐中使用它
    2023-05-05
  • Golang中下劃線(_)的不錯用法分享

    Golang中下劃線(_)的不錯用法分享

    golang中的下劃線表示忽略變量的意思,也沒有產(chǎn)生新的變量,但是后面的表達(dá)式依然會被執(zhí)行,本文為大家整理了golang中下劃線的一些不錯的用法,需要的可以參考下
    2023-05-05
  • 一文詳解如何使用 Golang 處理文件

    一文詳解如何使用 Golang 處理文件

    Golang 是一種強(qiáng)類型、靜態(tài)編譯、并發(fā)性高的編程語言,我們將重點(diǎn)介紹 Golang 中的文件基本操作,包括創(chuàng)建文件與查看狀態(tài),重命名與移動,刪除與截?cái)?,讀寫文件,以及權(quán)限控制,跟著小編一起來學(xué)習(xí)吧
    2023-04-04
  • golang 設(shè)置web請求狀態(tài)碼操作

    golang 設(shè)置web請求狀態(tài)碼操作

    這篇文章主要介紹了golang 設(shè)置web請求狀態(tài)碼操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Golang二進(jìn)制反匯編問題

    Golang二進(jìn)制反匯編問題

    這篇文章主要介紹了Golang二進(jìn)制反匯編問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論