99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

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

35歲程序員腦干出血,可能要一輩子做康復。。

0
分享至

專欄:50多種數據結構徹底征服

專欄:50多種經典圖論算法全部掌握

最近浙江杭州一位35歲程序員因長期熬夜,導致腦干出血,昏迷了15天,經過緊急治療后,他在接受媒體采訪時說:自己每天早上 7 點起床,到凌晨一兩點睡。

這簡直是拿生命當兒戲,說實話凌晨一兩點睡,20多歲的時候我也遇到過,不過一年也不會超過5次,如果真的睡那么晚,第二天基本上要9點之后起床了。35歲之后就更不能這樣搞了,長期下去早晚有出事。

當事人稱自己在ICU一共待了28天,后來又去康復醫院待了70多天,回家之后也一直在康復和鍛煉,現在已經恢復了大約70%,但可能沒有辦法完全康復了。

他還說:“現在的我看待生活,覺得讓自己開心很重要,活得自由一點。之前想著我要掙錢,會在很多方面壓制自己,現在的話我覺得更多的可能要去好好體驗生活,讓自己過得快樂。也希望大家如果覺得累了,就歇一歇,我是前車之鑒。”




--------------下面是今天的算法題--------------

來看下今天的算法題,這題是LeetCode的第1483題:樹節點的第 K 個祖先,難度是困難。

給你一棵樹,樹上有 n 個節點,按從 0 到 n-1 編號。樹以父節點數組的形式給出,其中 parent[i] 是節點 i 的父節點。樹的根節點是編號為 0 的節點。樹節點的第 k 個祖先節點是從該節點到根節點路徑上的第 k 個節點。

實現 TreeAncestor 類:

1,TreeAncestor(int n, int[] parent) 對樹和父數組中的節點數初始化對象。

2,getKthAncestor(int node, int k) 返回節點 node 的第 k 個祖先節點。如果不存在這樣的祖先節點,返回 -1 。

示例1:



輸入: ["TreeAncestor","getKthAncestor","getKthAncestor","getKthAncestor"] [[7,[-1,0,0,1,1,2,2]],[3,1],[5,2],[6,3]] 輸出: [null,1,0,-1]

解釋: TreeAncestor treeAncestor = new TreeAncestor(7, [-1, 0, 0, 1, 1, 2, 2]); treeAncestor.getKthAncestor(3, 1); // 返回 1 ,它是 3 的父節點 treeAncestor.getKthAncestor(5, 2); // 返回 0 ,它是 5 的祖父節點 treeAncestor.getKthAncestor(6, 3); // 返回 -1 因為不存在滿足要求的祖先節點

  • 1 <= k <= n <= 5 * 10^4

  • parent[0] == -1 表示編號為 0 的節點是根節點。

  • 對于所有的 0 < i < n ,0 <= parent[i] < n 總成立

  • 0 <= node < n

  • 至多查詢 5 * 10^4 次

問題分析

這題讓返回某個節點的第 k 個祖先節點,并且查詢次數高達 5 * 10^4 ,如果每次查詢的時候都要重新找,肯定是不行的。因為這題沒有對樹修改的函數,所以這棵樹是固定的,我們可以先計算所有節點的第 x 個祖先節點,查詢的時候就會更加方便。

我們這里使用倍增的思想,定義數組dp[i][j]表示節點 i 的第 2^j 個祖先。很明顯當 j 等于 0 的時候,dp[i][0]表示的是節點 i 的父節點。

找到每個節點的父節點了,那么肯定也能找到每個節點父節點的父節點,也就是dp[i][1]=dp[dp[i][0]][0],也就是說節點 i 的第 2^1 個祖先是節點 i 的第 2^0 個祖先的第 2^0 個祖先。

更進一步我們可以得出節點 i 的第 2^j 個祖先是節點 i 的第 2^(j-1) 個祖先的第 2^(j-1) 個祖先。舉個例子,節點 i 的第 8 個祖先節點是它的第 4 個祖先節點的第 4 個祖先節點。

所以我們可以得到:dp[i][j]=dp[dp[i][j-1]][j-1],但這樣計算的結果是不完整的,比如計算 i 的第 13 個祖先節點,我們可能最多只能計算它的第 8 個祖先節點,但這不影響查詢。

在進行查詢的時候我們是根據這個數字的二進制進行查詢的。比如 13 的二進制是 1101,我們只需要往上先查詢 i 的第 1 個,然后第 4 個,最后第 8 個,最終結果就是 i 的第 13 個祖先節點。

JAVA:

class TreeAncestor {     int bits;// n 的最大位數     // dp[i][j] 表示節點 i 的第 2^j 個祖先     int[][] dp;     public TreeAncestor(int n, int[] parent) {         bits = (int) (Math.log(n) / Math.log(2)) + 1;         dp = newint[n][bits];         for (int i = 0; i < n; i++)             Arrays.fill(dp[i], -1);// 全部默認為 -1 。         // 所有節點的第一個祖先是它的父節點。         for (int i = 0; i < n; i++)             dp[i][0] = parent[i];         // 節點 i 的第 2^j 個祖先也是節點 i 的第2^(j-1)個祖先的第2^(j-1)個祖先。         for (int j = 1; j < bits; j++) {             for (int i = 0; i < n; i++) {                 // i 的第2^(j-1)個祖先就是dp[i][j - 1]。                 if (dp[i][j - 1] != -1) dp[i][j] = dp[dp[i][j - 1]][j - 1];             }         }     }     // 利用二進制的特性使用倍增查詢。     public int getKthAncestor(int node, int k) {         for (int j = 0; j < bits; j++) {             // 比如 k 是13,它的二進制是1101,只有二進制中是 1 的時候才需要查詢,             // 先往上查 1 個,在往上查 4 個,最后在往上查 8 個,正好查找第 13 個。             if (((k >> j) & 1) == 1) {                 // 從node開始往上查詢第 2^j 個。                 node = dp[node][j];                 if (node == -1)// 如果為 -1 ,說明不存在第 k 個祖先。                     return -1;             }         }         return node;     } }

C++:

class TreeAncestor { private:     int bits; // n 的最大位數     vector

 > dp; // dp[i][j] 表示節點 i 的第 2^j 個祖先 public:     TreeAncestor(int n, vector

 &parent) {         bits = (int) (log(n) / log(2)) + 1;         dp = vector

 >(n, vector

 (bits, -1)); // 初始化為 -1         // 所有節點的第一個祖先是它的父節點。         for (int i = 0; i < n; i++)             dp[i][0] = parent[i];         // 節點 i 的第 2^j 個祖先也是節點 i 的第2^(j-1)個祖先的第2^(j-1)個祖先。         for (int j = 1; j < bits; j++) {             for (int i = 0; i < n; i++) {                 // i 的第2^(j-1)個祖先就是dp[i][j - 1]。                 if (dp[i][j - 1] != -1)                     dp[i][j] = dp[dp[i][j - 1]][j - 1];             }         }     }     // 利用二進制的特性使用倍增查詢。     int getKthAncestor(int node, int k) {         for (int j = 0; j < bits; j++) {             // 比如 k 是13,它的二進制是1101,只有二進制中是 1 的時候才需要查詢,             // 先往上查 1 個,在往上查 4 個,最后在往上查 8 個,正好查找第 13 個。             if (((k >> j) & 1) == 1) {                 // 從node開始往上查詢第 2^j 個。                 node = dp[node][j];                 if (node == -1)// 如果為 -1 ,說明不存在第 k 個祖先。                     return-1;             }         }         return node;     } };




筆者簡介

博哥,真名:王一博,畢業十多年, 作者,專注于 數據結構和算法 的講解,在全球30多個算法網站中累計做題2000多道,在公眾號中寫算法題解800多題,對算法題有自己獨特的解題思路和解題技巧,喜歡的可以給個關注,也可以 下載我整理的1000多頁的PDF算法文檔 。

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

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.

相關推薦
熱點推薦
80歲張春橋保外就醫細節:每天兩菜一湯,最怕聽到孩子笑聲!

80歲張春橋保外就醫細節:每天兩菜一湯,最怕聽到孩子笑聲!

星宇共鳴
2025-07-24 17:34:26
別克首款中大型增程轎跑亮相!全新的逍遙架構,純電續航302公里

別克首款中大型增程轎跑亮相!全新的逍遙架構,純電續航302公里

小史談車
2025-07-24 15:22:43
陳佩斯新片全場零笑聲?點映場觀眾為何集體沉默!

陳佩斯新片全場零笑聲?點映場觀眾為何集體沉默!

情感大頭說說
2025-07-23 14:23:09
96年奧尼爾加盟湖人,直到2000年捧杯 中間這3年季后賽都輸給誰了

96年奧尼爾加盟湖人,直到2000年捧杯 中間這3年季后賽都輸給誰了

大衛的籃球故事
2025-07-25 18:54:14
iPhone17Pro全系配色曝光:橙色最吸睛

iPhone17Pro全系配色曝光:橙色最吸睛

魯中晨報
2025-07-25 18:12:06
小燕子帶著女兒小四月大理度假,塑料袋裝舊愛馬仕有點奇怪啊!

小燕子帶著女兒小四月大理度假,塑料袋裝舊愛馬仕有點奇怪啊!

農城浪子
2025-07-25 11:08:30
勞森全場23分3板4助,黎巴嫩男籃熱身賽105-89大勝伊朗男籃

勞森全場23分3板4助,黎巴嫩男籃熱身賽105-89大勝伊朗男籃

雷速體育
2025-07-25 12:37:19
娛樂圈鮮為人知事件:老燕子舅舅人盡皆知,釋小龍背景無人能及!

娛樂圈鮮為人知事件:老燕子舅舅人盡皆知,釋小龍背景無人能及!

娛樂獨家內幕
2025-07-24 01:55:53
金正日長子死亡內幕:被軟禁到15歲,打造情色行宮,涉嫌謀害弟弟

金正日長子死亡內幕:被軟禁到15歲,打造情色行宮,涉嫌謀害弟弟

吳學華看天下
2023-12-12 11:19:09
“我都退休了憑啥不能補課?”老教師家中補課被舉報,教育部門回應

“我都退休了憑啥不能補課?”老教師家中補課被舉報,教育部門回應

譚老師地理工作室
2025-07-25 14:25:28
26歲女子深圳面試后想刪身份證手機號遭毆打致骨折?涉事公司:無肢體接觸,警方介入

26歲女子深圳面試后想刪身份證手機號遭毆打致骨折?涉事公司:無肢體接觸,警方介入

瀟湘晨報
2025-07-24 17:32:05
勇奪女單冠軍!中國女乒又一22歲黑馬新星崛起:外戰不敗無懼日乒

勇奪女單冠軍!中國女乒又一22歲黑馬新星崛起:外戰不敗無懼日乒

李喜林籃球絕殺
2025-07-25 12:52:13
野史不一定保真但一定包野,網友:古人的“八卦”更炸裂

野史不一定保真但一定包野,網友:古人的“八卦”更炸裂

東洲清
2025-03-14 11:21:12
毛主席唯一活下來的兒子,07年離世享年84歲,晚年享受的啥待遇?

毛主席唯一活下來的兒子,07年離世享年84歲,晚年享受的啥待遇?

南書房
2025-07-25 23:25:03
上海小伙專程逛3天胖東來!現實比網上說的更離譜,細節讓人震驚

上海小伙專程逛3天胖東來!現實比網上說的更離譜,細節讓人震驚

大笑江湖史
2025-07-21 15:04:57
“打基礎論”為什么站不住腳?

“打基礎論”為什么站不住腳?

報人劉亞東
2025-07-25 17:45:42
德布勞內:瓜帥風格偏進攻孔蒂偏防守,有足夠時間了解教練和戰術

德布勞內:瓜帥風格偏進攻孔蒂偏防守,有足夠時間了解教練和戰術

直播吧
2025-07-25 21:53:56
孕檢發現孩子沒手沒腳,寶媽不顧勸阻堅持生下,如今過得怎么樣?

孕檢發現孩子沒手沒腳,寶媽不顧勸阻堅持生下,如今過得怎么樣?

大果小果媽媽
2025-07-02 20:46:20
確認影響上海,“三臺風共舞”!大風大雨來了

確認影響上海,“三臺風共舞”!大風大雨來了

魯中晨報
2025-07-25 16:58:23
游泳世錦賽|擊碎質疑!昔日霸主俄羅斯曲線回歸,中國花游終越“高山”

游泳世錦賽|擊碎質疑!昔日霸主俄羅斯曲線回歸,中國花游終越“高山”

文匯報
2025-07-25 22:53:09
2025-07-26 00:19:00
數據結構和算法
數據結構和算法
專門介紹和寫算法題解的號
238文章數 3關注度
往期回顧 全部

科技要聞

36款熱門車高危智駕場景測試,“團滅”!

頭條要聞

8旬翁下葬前墓地被人埋死狗沿路埋鐵釘暗器 官方介入

頭條要聞

8旬翁下葬前墓地被人埋死狗沿路埋鐵釘暗器 官方介入

體育要聞

3年過去了,她還是歐洲杯上最酷的姐

娛樂要聞

汪蘇瀧不忍了 !張碧晨痛失《年輪》演唱權

財經要聞

劉煜輝:當下重要不是找確定性而是轉折點

汽車要聞

李斌一口氣講了近3個小時樂道L90 原因是為啥?

態度原創

教育
手機
家居
親子
本地

教育要聞

389分撿漏鄭大,367分讀華水,河南考生咋沒這個命

手機要聞

三星新一代Galaxy Z系列 開啟折疊屏主動交互新時代

家居要聞

環繞設計 空間動線合理

親子要聞

爸爸被娃嫌,被狗嫌,被我嫌都是自找的

本地新聞

換個城市過夏天|風拂鹽湖,躲進格爾木的盛夏清涼

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 湄潭县| 佛冈县| 康马县| 罗定市| 于都县| 睢宁县| 七台河市| 五常市| 文山县| 长子县| 大港区| 泌阳县| 天全县| 华坪县| 石嘴山市| 尉氏县| 永靖县| 太湖县| 克山县| 城口县| 江陵县| 遂平县| 瓦房店市| 辽宁省| 大余县| 出国| 墨玉县| 河源市| 光山县| 衢州市| 永年县| 疏附县| 毕节市| 金阳县| 万安县| 东港市| 海淀区| 楚雄市| 开封县| 米林县| 金乡县|