<ruby id="9ue20"></ruby>

  1. 
    

      国产午夜福利免费入口,国产日韩综合av在线,精品久久人人妻人人做精品,蜜臀av一区二区三区精品,亚洲欧美中文日韩在线v日本,人妻av中文字幕无码专区 ,亚洲精品国产av一区二区,久久精品国产清自在天天线
      網易首頁 > 網易號 > 正文 申請入駐

      2026-04-26:使循環數組余額非負的最少移動次數。用go語言,給定一個環形排列的數組 balance,長度為 n,其中 balance[i] 表示...

      0
      分享至

      2026-04-26:使循環數組余額非負的最少移動次數。用go語言,給定一個環形排列的數組 balance,長度為 n,其中 balance[i] 表示第 i 個人當前的凈余額(正數代表有剩余,負數代表欠債)。

      在一次操作中,你可以選擇某個人,把恰好 1 單位余額轉給他的左鄰居或右鄰居(因為是環形,首尾相鄰)。

      目標:通過若干次這樣的轉移,使得所有位置的余額都變為非負(即每個人都不再欠債)。

      要求:輸出實現該目標的最小操作次數;如果從初始狀態出發無法做到,則輸出 -1。

      已知條件:初始時數組中最多只有一個位置的余額為負。

      1 <= n == balance.length <= 100000。

      -1000000000 <= balance[i] <= 1000000000。

      balance 中初始至多有一個負值。

      輸入:balance = [1,2,-5,2]。

      輸出:6。

      解釋:

      一種最優的移動序列如下:

      從 i = 1 移動 1 個單位到 i = 2,結果 balance = [1, 1, -4, 2]

      從 i = 1 移動 1 個單位到 i = 2,結果 balance = [1, 0, -3, 2]

      從 i = 3 移動 1 個單位到 i = 2,結果 balance = [1, 0, -2, 1]

      從 i = 3 移動 1 個單位到 i = 2,結果 balance = [1, 0, -1, 0]

      從 i = 0 移動 1 個單位到 i = 1,結果 balance = [0, 1, -1, 0]

      從 i = 1 移動 1 個單位到 i = 2,結果 balance = [0, 0, 0, 0]

      因此,所需的最小移動次數是 6。

      題目來自力扣3776。

      代碼執行過程詳細拆解 第一步:遍歷數組,統計核心信息

      1. 1. 計算數組所有元素的總和:1+2+(-5)+2 = 0

      2. 2. 遍歷過程中記錄唯一的負數位置:只有索引2的值是-5,因此negIdx=2

      3. 3. 基礎校驗:

      • ? 總和=0 ≥ 0,滿足可以完成的條件;

      • ? 存在負數,需要計算移動次數。

      第二步:確定核心需求

      負數位置是索引2,余額為-5,需要補充5單位余額才能變成0(非負),記need=5(需要的總余額數)。
      初始化總操作次數ans=0

      第三步:按距離分層收集余額(環形就近原則,最小步數)

      因為是環形數組,我們從離負數位置最近的地方開始收集余額(距離越近,移動步數越少,符合最小操作次數要求),距離從1開始依次遞增:

      距離 dis=1(離索引2最近的左右鄰居)

      1. 1. 找環形數組中,距離negIdx=2為1的兩個位置:

      • ? 左鄰居:(2-1+4)%4 = 1

      • ? 右鄰居:(2+1)%4 = 3

      2. 這兩個位置的余額:索引1=2,索引3=2,總和s=2+2=4

      3. 計算:

      • ? 當前需要5單位,這兩個位置能提供4單位,全部用完

      • ? 操作次數 += 4 × 1(4個單位,每個移動1步)→ ans=4

      • ? 剩余需要的余額:need=5-4=1

      距離 dis=2(下一層更遠的位置)
      1. 1. 找環形數組中,距離negIdx=2為2的兩個位置:

      • ? 左鄰居:(2-2+4)%4 = 0

      • ? 右鄰居:(2+2)%4 = 0(環形數組,距離2時左右是同一個位置)

      2. 這個位置的余額:索引0=1,總和s=1

      3. 計算:

      • ? 剩余只需要1單位,這個位置恰好能提供1單位

      • ? 操作次數 += 1 × 2(1個單位,每個移動2步)→ ans=4+2=6

      • ? need=0,需求滿足,結束計算

      第四步:返回結果

      總操作次數為6,與題目示例輸出一致。

      時間復雜度與額外空間復雜度分析 1. 時間復雜度

      • ? 第一步遍歷數組:執行了n次操作(n是數組長度);

      • ? 第三步按距離收集余額:因為最多只有1個負數,且我們是就近收集,循環次數遠小于n,可以視為常數次;

      • ? 整體總操作次數與數組長度n成正比 →時間復雜度為 O(n)

      2. 額外空間復雜度
      • ? 代碼中只定義了total、negIdx、need、ans、dis、s常數個變量

      • ? 沒有創建任何與數組長度n相關的額外數組、集合等數據結構;

      • ?額外空間復雜度為 O(1)(常數級空間)。

      總結
      1. 1. 執行核心流程:統計總和→定位唯一負數→校驗合法性→就近分層收集余額→累加步數→返回結果;

      2. 2. 時間復雜度:O(n)(線性復雜度,適合題目n≤100000的大數據量);

      3. 3. 額外空間復雜度:O(1)(僅使用固定變量,無額外內存開銷)。

      Go完整代碼如下:

      package main

      import (
      "fmt"
      )

      func minMoves(balance []int)int64 {
      total := 0
      negIdx := -1
      for i, x := range balance {
      total += x
      if x < 0 {
      negIdx = i
      }
      }

      if total < 0 { // 總和必須非負
      return-1
      }
      if negIdx < 0 { // 沒有負數,無需操作
      return0
      }

      n := len(balance)
      need := -balance[negIdx]
      ans := 0
      for dis := 1; ; dis++ { // 把與 negIdx 相距 dis 的數移到 negIdx
      s := balance[(negIdx-dis+n)%n] + balance[(negIdx+dis)%n]
      if s >= need {
      ans += need * dis // need 個 1 移動 dis 次
      returnint64(ans)
      }
      ans += s * dis // s 個 1 移動 dis 次
      need -= s
      }
      }

      func main() {
      balance := []int{1, 2, -5, 2}
      result := minMoves(balance)
      fmt.Println(result)
      }

      Python完整代碼如下:

      # -*-coding:utf-8-*-

      from typing import List

      def minMoves(balance: List[int]) -> int:
      total = 0
      neg_idx = -1
      for i, x in enumerate(balance):
      total += x
      if x < 0:
      neg_idx = i
      if total < 0: # 總和必須非負
      return-1
      if neg_idx < 0: # 沒有負數,無需操作
      return0
      n = len(balance)
      need = -balance[neg_idx]
      ans = 0
      dis = 1
      while True: # 把與 neg_idx 相距 dis 的數移到 neg_idx
      left = balance[(neg_idx - dis) % n]
      right = balance[(neg_idx + dis) % n]
      s = left + right
      if s >= need:
      ans += need * dis # need 個 1 移動 dis 次
      return ans
      ans += s * dis # s 個 1 移動 dis 次
      need -= s
      dis += 1

      if __name__ == "__main__":
      balance = [1, 2, -5, 2]
      result = minMoves(balance)
      print(result)

      C++完整代碼如下:

        
      



      using namespace std;

      long long minMoves(vector& balance) {
      int total = 0;
      int negIdx = -1;

      for (int i = 0; i < balance.size(); i++) {
      total += balance[i];
      if (balance[i] < 0) {
      negIdx = i;
      }
      }

      if (total < 0) { // 總和必須非負
      return-1;
      }
      if (negIdx < 0) { // 沒有負數,無需操作
      return0;
      }

      int n = balance.size();
      int need = -balance[negIdx];
      long long ans = 0;

      for (int dis = 1; ; dis++) { // 把與 negIdx 相距 dis 的數移到 negIdx
      int left = balance[(negIdx - dis + n) % n];
      int right = balance[(negIdx + dis) % n];
      int s = left + right;

      if (s >= need) {
      ans += static_cast (need) * dis; // need 個 1 移動 dis 次
      return ans;
      }
      ans += static_cast (s) * dis; // s 個 1 移動 dis 次
      need -= s;
      }
      }

      int main() {
      vector balance = {1, 2, -5, 2};
      long long result = minMoves(balance);
      cout << result << endl;
      return0;
      }

      我們相信人工智能為普通人提供了一種“增強工具”,并致力于分享全方位的AI知識。在這里,您可以找到最新的AI科普文章、工具評測、提升效率的秘籍以及行業洞察。 歡迎關注“福大大架構師每日一題”,發消息可獲得面試資料,讓AI助力您的未來發展。

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      首個國有大行信用卡APP,即將關停

      首個國有大行信用卡APP,即將關停

      澎湃新聞
      2026-05-13 22:53:05
      50年不停產!這顆8腳芯片至今仍在量產:淘寶幾毛錢就能買

      50年不停產!這顆8腳芯片至今仍在量產:淘寶幾毛錢就能買

      快科技
      2026-05-11 17:38:30
      中紀委劃紅線:嚴查公務員出現這5種行為,觸碰將一律嚴肅處理

      中紀委劃紅線:嚴查公務員出現這5種行為,觸碰將一律嚴肅處理

      細說職場
      2026-05-06 14:21:03
      如何限制文班?PJ-塔克:沒有正確答案,只能用小個陣容跟他肉搏

      如何限制文班?PJ-塔克:沒有正確答案,只能用小個陣容跟他肉搏

      懂球帝
      2026-05-13 20:52:07
      起底那個聲稱海參崴不存在的微博大v杜建國

      起底那個聲稱海參崴不存在的微博大v杜建國

      筆桿論道
      2026-05-13 00:01:53
      姆巴佩:休息日我喜歡在家發呆;能和偶像C羅成摯友感覺太棒

      姆巴佩:休息日我喜歡在家發呆;能和偶像C羅成摯友感覺太棒

      喜歡歷史的阿繁
      2026-05-13 17:07:11
      8勝1負,女單僅剩獨苗,國羽多場險勝,附泰國公開賽14日賽程

      8勝1負,女單僅剩獨苗,國羽多場險勝,附泰國公開賽14日賽程

      佑銘羽球
      2026-05-14 02:25:19
      孫銘陽正式宣布退出國家隊:我隨時都在,有召必回!

      孫銘陽正式宣布退出國家隊:我隨時都在,有召必回!

      現代快報
      2026-05-13 15:38:07
      馬筱梅與玥兒箖箖新同框,雙方略顯生疏,玥兒個子已經超過繼母

      馬筱梅與玥兒箖箖新同框,雙方略顯生疏,玥兒個子已經超過繼母

      阿鳧愛吐槽
      2026-05-11 23:11:02
      港獨、罵中國人,如今卻還想來內地撈金,這3位香港明星令人作嘔

      港獨、罵中國人,如今卻還想來內地撈金,這3位香港明星令人作嘔

      傲傲講歷史
      2026-04-19 01:20:08
      瑪莎·斯圖爾特穿Crocs出街,同款厚底涼鞋跌破45美元

      瑪莎·斯圖爾特穿Crocs出街,同款厚底涼鞋跌破45美元

      熱搜摘要官
      2026-05-12 06:03:21
      喝酒后出現這3個現象,說明你的身體已不適合喝酒,再喝就是玩命

      喝酒后出現這3個現象,說明你的身體已不適合喝酒,再喝就是玩命

      深度報
      2026-04-24 22:31:58
      阿斯:恩里克-里克爾梅已騰出精力,打算參與皇馬主席選舉

      阿斯:恩里克-里克爾梅已騰出精力,打算參與皇馬主席選舉

      懂球帝
      2026-05-13 22:48:05
      哈里這次真把自己弄尷尬了:人還沒回英國,先逼王室給梅根留面子

      哈里這次真把自己弄尷尬了:人還沒回英國,先逼王室給梅根留面子

      白露文娛志
      2026-05-12 16:32:41
      北京時間5月13日,NBA傳來重磅消息!

      北京時間5月13日,NBA傳來重磅消息!

      止境
      2026-05-14 00:41:37
      中國人口斷崖來襲!5月9日民政部公布:2026年1季度民政統計數據

      中國人口斷崖來襲!5月9日民政部公布:2026年1季度民政統計數據

      混沌錄
      2026-05-13 23:46:07
      網紅白冰慘遭員工背刺卷走千萬!全網無人心疼,網友:賣慘沒用

      網紅白冰慘遭員工背刺卷走千萬!全網無人心疼,網友:賣慘沒用

      雷科技
      2026-05-13 17:24:35
      比中國巨石還猛?這家6元低價+電子布紡織機龍頭   主力爆買3億元

      比中國巨石還猛?這家6元低價+電子布紡織機龍頭 主力爆買3億元

      元芳說投資
      2026-05-13 06:00:22
      血常規中這個指標竟然可以用來判斷腫瘤是否復發

      血常規中這個指標竟然可以用來判斷腫瘤是否復發

      陪老公抗AI
      2026-05-13 15:04:20
      千萬別信屏幕里的單依純,去了現場才知道她有多瘋。

      千萬別信屏幕里的單依純,去了現場才知道她有多瘋。

      時分秒說
      2026-03-31 17:21:25
      2026-05-14 03:03:00
      moonfdd incentive-icons
      moonfdd
      福大大架構師每日一題
      1225文章數 68關注度
      往期回顧 全部

      科技要聞

      阿里年營收首破萬億,AI終于不再是畫大餅

      頭條要聞

      女子閃婚獲千萬房產99%份額閃離后起訴分割 法院判了

      頭條要聞

      女子閃婚獲千萬房產99%份額閃離后起訴分割 法院判了

      體育要聞

      14年半,74萬,何冰嬌沒選那條更安穩的路

      娛樂要聞

      白鹿掉20萬粉,網友為李晨鳴不平

      財經要聞

      美國總統特朗普抵達北京

      汽車要聞

      C級純電轎跑 吉利銀河"TT"申報圖來了

      態度原創

      手機
      本地
      親子
      時尚
      公開課

      手機要聞

      iPhone18Pro配色敲定+iOS 27功能曝光!今年9月的蘋果,料有點多

      本地新聞

      用蘇繡的方式,打開江西婺源

      親子要聞

      去最需要的地方!安慧霞遠赴高原幼教幫扶:夜晚吸氧白天授課

      專欄 | 進入心流后,不被洪流裹挾

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 日韩欧美久久| 成人永久免费A∨一级在线播放| 国产精品一区二区国产主播| 国产流白浆一区二区三区免费视频| 亚洲精品无码高潮喷水A| 日本一区网站| www.色吊丝av.com| 中文天堂在线www| 国产人与禽zoz0性伦多活几年| 91豆花视频| 人妻激情视频一区二区三区| 久久久精品人妻一区二区三区四| 欧美日韩国产在线观看| 国产精品一码二码三码| 久久精品中文字幕| 奉新县| 男女啪啪高潮无遮挡免费| 四虎永久精品在线视频| AV不卡在线| 777奇米四色成人影视色区| 国产一区二区三区导航| 日韩成人大屁股内射喷水| 又大又紧又粉嫩18p少妇| 国产99视频精品免费视频6| 人妻巨大乳hd免费看| 亚洲第一免费播放区| 国产午夜精品久久久久免费视 | 色99久久久久高潮综合影院| 人妻国产精品在线| 亚洲国产成人最新精品资源| 欧美成人猛片aaaaaaa| 精品国产精品中文字幕| 国产毛a片啊久久久久久保和丸| 丁香五月影院| 国产伦精品一区二区三区免费迷| 免费人妻无码不卡中文18禁| 亚洲自拍色综合| 欧美韩国日本| 亚洲AV一日韩| 激情五月天一区二区三区| 日本一区二区三区免费播放视频站|