无主之地2配置高吗|看真人裸体BBBBB|秋草莓丝瓜黄瓜榴莲色多多|真人強奷112分钟|精品一卡2卡3卡四卡新区|日本成人深夜苍井空|八十年代动画片

網易首頁 > 網易號 > 正文 申請入駐

從O(n2)暴跌至O(n):1個max公式如何破解二進制重排

0
分享至

O(n)。這是解決“二進制字符串每秒轉換”問題的最優時間復雜度。給定一個只包含'0'和'1'的字符串,每秒所有子串“01”會同時替換為“10”,要求計算直到字符串中不存在“01”為止所需的秒數。你會選擇直觀的逐秒模擬,還是接受一次遍歷就得出答案的巧妙算法?

模擬派總是先動手:維護字符串,每輪掃描所有位置,遇到“01”就標記,然后批量替換,直到結束。這種做法直擊問題定義,易于驗證,但在數據規模面前顯得笨拙。設想字符串長度達到數萬,每秒鐘都可能產生大量替換,最壞情況下循環輪數可能接近原串長度,整體時間接近O(n2)。更糟糕的是,多個“1”之間的互相阻塞會使模擬的輪數遠超直覺預期,內存中對字符串的頻繁重寫也讓性能雪上加霜。

優化派則抓住一個本質:每個“1”最終都要向左穿越它前面的所有“0”。如果只是確認最終位置,似乎每個“1”需要的秒數就等于它前方“0”的個數——但問題在于,“1”不能相互超越,它們必須排隊通行。這種排隊帶來的延遲,恰恰是理解O(n)解法的關鍵。

在線性掃描算法中,我們只維護兩個變量:zeros記錄當前已遍歷的“0”的個數,time則是處理到當前位置時所需的累積秒數。從頭開始逐個字符掃描:遇到“0”就遞增zeros;遇到“1”且zeros大于0時,利用公式 time = max(time + 1, zeros) 更新time。最終得到的time就是答案。遍歷一遍,時間復雜度O(n),空間僅用了兩個整型變量,堪稱極致。

初看這段代碼,多數人會立即拋出幾個問題:zeros到底在積累什么?為什么只在遇到“1”時才更新time?又為什么更新時用max(time+1, zeros)這么曲折的方式,而不是直接time = zeros?time+1代表著什么?為什么這個線性掃描能避免模擬每一秒?讓我們逐個拆解。

zeros作為一個計數器,它的真實含義是“當前已出現、但尚未被某個'1'徹底跨越的'0'的數量”。在遍歷過程中,每當碰到一個“0”,意味著未來會有“1”需要從它上面越過,所以計數增加。直到某個“1”真的開始移動并最終通過它,這種“待跨越”的狀態才會消除。

但在算法里我們并不顯式扣減zeros,因為最終答案已經交織在time中。實際上,zeros會在整個遍歷過程中持續增加,因為它后面的“0”對更后面的“1”來說,仍然是障礙物。zeros只積累不減少,卻不會導致time失真,正是因為time通過max動態權衡了排隊與障礙兩股力量。

time代表當前已處理的“1”完成全部移動所需的最少秒數。第一個“1”出現時,沒有任何前面“1”的阻擋,它只需要跨過此前積累的所有zeros個“0”,所以理論上time=zeros。但隨后每個新“1”的加入,情況就變得不同了:它既要跨過自己前面的“0”,又要尊重前面“1”的移動節奏——因為所有“1”在每秒內都只能整體將每個“0”向左推一個位置,“1”之間不能穿行。

這就引出了time+1的含義:當一個新的“1”準備出發時,它必須排在最近一個“1”完成全部移動的時刻之后再加1秒。因為它至少需要比前一個“1”晚1秒才能開始移動(否則就穿過了前車)。但與此同時,它自己的障礙物數量也可能很大:如果前面堆積的zeros足夠多,跨越這些0本身就需要zeros秒,可能大于time+1。所以實際需要的秒數取兩者中的最大值:time = max(time + 1, zeros)。

當zeros較少而排隊阻塞嚴重時,time+1會主導更新,體現串行等待;當zeros很多而排隊相對寬松時,zeros直接接管,體現跨越障礙的硬需求。這種二選一的邏輯,把逐秒模擬中繁瑣的“碰撞檢測”壓縮為一次max判斷。一次遍歷結束時,time就是全局答案,全程無需真實模擬任何一秒,因為每個“1”的最終時刻已經被公式精確推演出來。這正是O(n)解法的精髓,也是那個max公式讓人一再回味的原因。

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

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.

相關推薦
熱點推薦
印度高溫近50℃!宿舍沒有空調 中國留學生被熱到提前回國

印度高溫近50℃!宿舍沒有空調 中國留學生被熱到提前回國

封面新聞
2026-05-30 14:26:04
房主將自家住宅變“網約房” 鄰居有權說“不”嗎?

房主將自家住宅變“網約房” 鄰居有權說“不”嗎?

北青網-北京青年報
2026-05-30 21:06:09
越扒越有!曝楊梅協會會長:是當地最大批發商,親戚全在協會任職

越扒越有!曝楊梅協會會長:是當地最大批發商,親戚全在協會任職

天天熱點見聞
2026-05-30 06:44:22
2000億龍頭遭高管集體減持,理由是為孩子教育,董事長套現4.2億元

2000億龍頭遭高管集體減持,理由是為孩子教育,董事長套現4.2億元

21世紀經濟報道
2026-05-30 23:04:07
華為“t定律”被指是過時概念,臺積電高管:在業界已存在相當長時間

華為“t定律”被指是過時概念,臺積電高管:在業界已存在相當長時間

風向觀察
2026-05-30 19:10:22
男團成員褲腰低到離譜?網友怒批:這是公共猥褻

男團成員褲腰低到離譜?網友怒批:這是公共猥褻

時光慢旅人
2026-05-30 01:29:08
絕了!LV太子妃這身材誰能看出來懷第六個了

絕了!LV太子妃這身材誰能看出來懷第六個了

書臺小事
2026-05-28 21:32:53
禽獸都不會這么干!巴西亞馬遜雨林發生嚴重挑戰人類倫理的事情

禽獸都不會這么干!巴西亞馬遜雨林發生嚴重挑戰人類倫理的事情

科普大世界
2026-05-30 21:04:03
被中國軍隊趕跑后,荷蘭軍艦溜到越南,獲越方款待,要再穿行南海

被中國軍隊趕跑后,荷蘭軍艦溜到越南,獲越方款待,要再穿行南海

影孖看世界
2026-05-30 22:32:27
巴黎衛冕歐冠!復刻皇馬奇跡,3戰阿森納全勝,連刷6大紀錄

巴黎衛冕歐冠!復刻皇馬奇跡,3戰阿森納全勝,連刷6大紀錄

奧拜爾
2026-05-31 03:03:15
15萬!蔚來"神車"官宣:5月29日 ,正式發布亮相

15萬!蔚來"神車"官宣:5月29日 ,正式發布亮相

科技堡壘
2026-05-29 11:14:19
35頁PPT瘋傳:洛陽女子1女談3男,每天卡時間,都已談婚論嫁

35頁PPT瘋傳:洛陽女子1女談3男,每天卡時間,都已談婚論嫁

烈史
2026-05-30 13:23:41
禁投美股,難得全球大國中惟一正確

禁投美股,難得全球大國中惟一正確

家傳編輯部
2026-05-30 12:24:47
俄羅斯無人機擊中羅馬尼亞,導致2人受傷,預計北約不會有大動作

俄羅斯無人機擊中羅馬尼亞,導致2人受傷,預計北約不會有大動作

山河路口
2026-05-29 14:04:31
新華社下場,耿同學又拋出4條大魚!

新華社下場,耿同學又拋出4條大魚!

仕道
2026-05-30 09:52:28
扎哈羅娃:俄將對羅馬尼亞迅速采取報復措施

扎哈羅娃:俄將對羅馬尼亞迅速采取報復措施

參考消息
2026-05-30 11:58:56
重磅!拒絕交易!給字母哥都不行???

重磅!拒絕交易!給字母哥都不行???

左右為籃
2026-05-31 08:03:22
明星無濾鏡后,周濤一臉兇相,李冰冰像小老太,金晨臉大如餅

明星無濾鏡后,周濤一臉兇相,李冰冰像小老太,金晨臉大如餅

笑飲孤鴻非
2026-05-30 20:58:06
上海再現排隊潮,40萬青春艙走熱富豪圈,只為“留住年輕”?

上海再現排隊潮,40萬青春艙走熱富豪圈,只為“留住年輕”?

果殼
2026-05-31 07:00:03
新包裝DL天然礦泉水22天后停售!胖東來:系設計方面重大失誤 正重新設計

新包裝DL天然礦泉水22天后停售!胖東來:系設計方面重大失誤 正重新設計

快科技
2026-05-30 20:50:08
2026-05-31 09:16:49
字節漫游指南
字節漫游指南
有態度網友ytd
5512文章數 53關注度
往期回顧 全部

科技要聞

車圈大佬發聲:價格戰遠去,但競爭仍殘酷

頭條要聞

房主將住宅變"網約房"掛到網上接受預訂 鄰居不滿起訴

頭條要聞

房主將住宅變"網約房"掛到網上接受預訂 鄰居不滿起訴

體育要聞

巴黎再度捧起歐冠獎杯 槍手眾將黯然神傷

娛樂要聞

張碧晨《歌手》 “活人微死” 自嘲

財經要聞

字節跳動的 "一盤大棋"

汽車要聞

900V+3.2秒破百 領克10+&領克10上市16.99萬元起

態度原創

健康
本地
手機
數碼
公開課

嘗試干細胞療法如何避免踩坑?

本地新聞

用剪紙的方式,打開江蘇揚州

手機要聞

安卓17適配計劃公布!谷歌Pixel首發嘗鮮 國產手機也能升

數碼要聞

vivo S60系列發布:2899元起 推出4K原生感Live

公開課

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

無障礙瀏覽 進入關懷版