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

Go語言題解LeetCode724尋找數(shù)組的中心下標(biāo)

 更新時(shí)間:2022年12月28日 14:22:29   作者:劉09k11  
這篇文章主要為大家介紹了Go語言題解LeetCode724尋找數(shù)組的中心下標(biāo),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

724. 尋找數(shù)組的中心下標(biāo) - 力扣(LeetCode) (leetcode-cn.com)

給你一個(gè)整數(shù)數(shù)組 nums ,請(qǐng)計(jì)算數(shù)組的 中心下標(biāo) 。

數(shù)組 中心下標(biāo) 是數(shù)組的一個(gè)下標(biāo),其左側(cè)所有元素相加的和等于右側(cè)所有元素相加的和。

如果中心下標(biāo)位于數(shù)組最左端,那么左側(cè)數(shù)之和視為 0 ,因?yàn)樵谙聵?biāo)的左側(cè)不存在元素。這一點(diǎn)對(duì)于中心下標(biāo)位于數(shù)組最右端同樣適用。

如果數(shù)組有多個(gè)中心下標(biāo),應(yīng)該返回 最靠近左邊 的那一個(gè)。如果數(shù)組不存在中心下標(biāo),返回 -1 。

示例 1:

輸入:nums = [1, 7, 3, 6, 5, 6]
輸出:3
解釋:
中心下標(biāo)是 3 。
左側(cè)數(shù)之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
右側(cè)數(shù)之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。

示例 2:

輸入:nums = [1, 2, 3]
輸出:-1
解釋:
數(shù)組中不存在滿足此條件的中心下標(biāo)。

示例 3:

輸入:nums = [2, 1, -1]
輸出:0
解釋:
中心下標(biāo)是 0 。
左側(cè)數(shù)之和 sum = 0 ,(下標(biāo) 0 左側(cè)不存在元素),
右側(cè)數(shù)之和 sum = nums[1] + nums[2] = 1 + -1 = 0 。

提示:

1 <= nums.length <= 10^4

-1000 <= nums[i] <= 1000

思路分析

暴力 破解思路 遍歷數(shù)組每一位,計(jì)算出每一位左側(cè)所有值和右側(cè)所有值,然后進(jìn)行比較。復(fù)雜度為 O(n²);

優(yōu)化暴力 破解

其實(shí)遍歷時(shí),無需每次都計(jì)算所有的值,我們可以利用上一次計(jì)算好的值,增減一位即可得到本次的目標(biāo)值。

[1, 2, 3 ,4 ,5, 6]

遍歷1:當(dāng)前位為1,leftSum[0]=0, rightSum[0]=20;

遍歷2:當(dāng)前位為2,leftSum[1]=leftSum[0]+nums[0] = 1, rightSum[1] = rightSum[0] - nums[1] = 18;

遍歷3:當(dāng)前位為3,leftSum[2]=leftSum[1]+nums[1] = 3, rightSum[2] = rightSum[1] - nums[2] = 15;

........

AC 代碼

class Solution {
    public int pivotIndex(int[] nums) {
        int length = nums.length;
        if (length == 0) {
            return -1;
        }
        if (length == 1) {
            return 0;
        }
        // 左右側(cè)的累加值,初始化
        int leftSum = 0;
        int rightSum = 0;
        // 右累加值,從第二位開始累加到最后一位
        for (int i=1;i<length;i++) {
            rightSum += nums[i];
        }
        for (int i=0;i<length;i++) {
            if (i == 0) {
                if (leftSum == rightSum) {
                    return i;
                }
            } else {
                // 不是第一位,左累加值要加上上一位的數(shù)字,右累加值要減去本位的數(shù)字
                leftSum += nums[i-1];
                rightSum -= nums[i];
                if (leftSum == rightSum) {
                    return i;
                }
            }
        }
        return -1;
    }
}

以上就是Go語言題解LeetCode724尋找數(shù)組的中心下標(biāo)的詳細(xì)內(nèi)容,更多關(guān)于Go語言尋找數(shù)組中心下標(biāo)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go單元測(cè)試對(duì)GORM進(jìn)行Mock測(cè)試

    Go單元測(cè)試對(duì)GORM進(jìn)行Mock測(cè)試

    這篇文章主要為大家介紹了Go單元測(cè)試對(duì)GORM進(jìn)行Mock測(cè)試用例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 淺談golang for 循環(huán)中使用協(xié)程的問題

    淺談golang for 循環(huán)中使用協(xié)程的問題

    這篇文章主要介紹了淺談golang for 循環(huán)中使用協(xié)程的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Golang使用Gin實(shí)現(xiàn)文件上傳的示例代碼

    Golang使用Gin實(shí)現(xiàn)文件上傳的示例代碼

    本文我們主要介紹了Golang如何使用Gin實(shí)現(xiàn)文件上傳,Go標(biāo)準(zhǔn)庫net/http對(duì)文件上傳已經(jīng)提供了非常完善的支持,而Gin框架在其基礎(chǔ)上進(jìn)一步封裝,因此使用Gin開發(fā)文件上傳功能時(shí),只需要簡(jiǎn)單幾行代碼便可以實(shí)現(xiàn),需要的朋友可以參考下
    2024-02-02
  • go語言中時(shí)間戳格式化的方法

    go語言中時(shí)間戳格式化的方法

    這篇文章主要介紹了go語言中時(shí)間戳格式化的方法,涉及Go語言中time的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Golang標(biāo)準(zhǔn)庫time包日常用法小結(jié)

    Golang標(biāo)準(zhǔn)庫time包日常用法小結(jié)

    本文主要介紹了Golang標(biāo)準(zhǔn)庫time包日常用法小結(jié),可以通過它們來獲取當(dāng)前時(shí)間、創(chuàng)建指定時(shí)間、解析時(shí)間字符串、控制時(shí)間間隔等操作,感興趣的可以了解一下
    2023-11-11
  • Go使用XORM操作MySQL的陷阱盤點(diǎn)分析

    Go使用XORM操作MySQL的陷阱盤點(diǎn)分析

    在?Go?語言開發(fā)中,大家為了方便,通常會(huì)選擇使用?ORM?操作數(shù)據(jù)庫,比如使用?XORM?或?GORM?操作?MySQL,本文我們來介紹一下使用?XORM[3]?操作?MySQL?可能會(huì)遇到的陷阱
    2023-11-11
  • Golang實(shí)現(xiàn)Biginteger大數(shù)計(jì)算實(shí)例詳解

    Golang實(shí)現(xiàn)Biginteger大數(shù)計(jì)算實(shí)例詳解

    這篇文章主要為大家介紹了Golang實(shí)現(xiàn)Biginteger大數(shù)計(jì)算實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Go代碼的組織和格式化規(guī)則實(shí)戰(zhàn)示例

    Go代碼的組織和格式化規(guī)則實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了Go代碼的組織和格式化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • golang連接kafka的示例代碼

    golang連接kafka的示例代碼

    本文主要介紹了golang連接kafka的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Go方法接收者值接收者與指針接收者詳解

    Go方法接收者值接收者與指針接收者詳解

    這篇文章主要為大家介紹了Go方法接收者值接收者與指針接收者詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論