第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么時候可以增加 jvm (-Xss) 的最大堆棧大???

什么時候可以增加 jvm (-Xss) 的最大堆棧大???

長風(fēng)秋雁 2023-06-08 19:52:22
我在做什么 ?我正在 coursera 上開設(shè)一門課程,該課程要求我編寫一個計算樹高的程序。輸入是一個父數(shù)組,其中每個索引都是節(jié)點(diǎn),其值是節(jié)點(diǎn)的父節(jié)點(diǎn)。如果節(jié)點(diǎn)是根節(jié)點(diǎn),它的值將為 -1。到目前為止我做了什么?我編寫了一個算法,通過遞歸遍歷其子節(jié)點(diǎn)直到其根節(jié)點(diǎn)并將中間子節(jié)點(diǎn)的高度保存在數(shù)組(深度變量)中來檢查樹的高度。為了擺脫這個異常,我嘗試為我的遞歸調(diào)用找到最佳值,結(jié)果它接近3100k。此外,當(dāng)我看到針對一些預(yù)定義測試用例測試我的算法的代碼也已將1 << 26 的堆棧大小傳遞到線程構(gòu)造函數(shù)中。我需要知道什么?有沒有更好的方法來解決這個問題?像這樣增加堆棧大小可以嗎?這是代碼int computeHeight() {? ? int[] depth = new int[n];? ? int maxHeight = 0;? ? for (int i = 0; i < n; i++) {? ? ? ? int height = computeHeight(parent, depth, i);? ? ? ? maxHeight = Math.max(height, maxHeight);? ? }? ? return maxHeight;}private int computeHeight(int[] parent, int[] depth, int idx) {? ? if (parent[idx] == -1) {? ? ? ? // root found? ? ? ? depth[idx] = 1;? ? ? ? return depth[idx];? ? }? ? // depth of parent unknown? ? if (depth[parent[idx]] == 0) {? ? ? ? computeHeight(parent, depth, parent[idx]);? ? }? ? depth[idx] = depth[parent[idx]] + 1;? ? return depth[idx];}
查看完整描述

3 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊

如果樹向右或向左傾斜,例如如果每個節(jié)點(diǎn)只有一個右子節(jié)點(diǎn),那么遞歸很容易導(dǎo)致計算器溢出(再次取決于堆棧設(shè)置),不確定輸入之一是否具有您的情況。

這可以以迭代方式完成:

a) 將所有父項(數(shù)組中的值)添加到 HashSet

b) 然后遍歷所有節(jié)點(diǎn)(這里只是從 0 到 n 的索引),看看它是否存在于集合中,如果不存在,它就是一片葉子。

c) 然后從葉子遍歷到根來獲取高度,同時將每個節(jié)點(diǎn)的高度存儲在數(shù)組中,這樣下次您就不必再次爬上相同的路徑。

d) 每次更新最大高度。


查看完整回答
反對 回復(fù) 2023-06-08
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊

在現(xiàn)實生活中,只有當(dāng)你知道深度被限制在一個很小的值時,你才應(yīng)該使用遞歸。

例如,遞歸地測量一棵平衡樹很好,但遞歸地測量一棵不平衡樹就不行了。


查看完整回答
反對 回復(fù) 2023-06-08
?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊

您遇到堆棧溢出錯誤似乎很奇怪,我假設(shè)這是一個如此簡單的問題;當(dāng)它是一棵非常大的樹或者您出于某種原因在它期間加載大量 RAM 時,這只會成為遞歸的問題。我建議你發(fā)布你的代碼。

至于增加堆棧大小,這不是問題,因為您只是在做練習(xí)題。然而,在現(xiàn)實世界中,這可能會帶來挑戰(zhàn),并且是使用遞歸的風(fēng)險之一。如果您在各種設(shè)備上使用您的應(yīng)用程序,由于設(shè)備的限制,增加堆棧大小可能并不總是可行的。相反,我建議您盡可能避免使用遞歸,除非您知道要遞歸的樹足夠小而不會導(dǎo)致溢出。

查看完整回答
反對 回復(fù) 2023-06-08
  • 3 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號