描述
給乙個巢狀的整數列表, 返回列表中所有整數由它們的深度加權後的總和. 每乙個元素可能是乙個整數或乙個列表(其元素也可能是整數或列表)。
注意,在之前的題目巢狀列表的加權和中,從根結點到葉子結點,深度權重是遞增的。在巢狀列表的加權和ii中,深度權重的定義是自下而上的,也就是說,最底層葉子結點的深度權重是1 ,根結點的深度權重最大。
lintcode 領扣
樣例1
輸入: nestedlist = [[1,1],2,[1,1]]
輸出: 8
解釋:
四個深度為1的1,乙個深度為2的2
樣例2
輸入: nestedlist = [1,[4,[6]]]
輸出: 17
解釋:
乙個深度為3的1, 乙個深度為2的4,和乙個深度為3的6。1*3 + 4*2 + 6*1 = 17
題解:
bfs遍歷列表每一層,如果是數字,則加到當前這一層的和當中,反之,是列表,則進入佇列,每一層遍歷完,才進入下一層,最後將每一層的數值加到結果當中即可。
public
class
solution
// initialize
intpresum=0
;int
result=0
;// put each item of list into the queue
queue
<
nestedinteger
>
queue
=new
linkedlist
<>(
nestedlist
);while
(!queue
.isempty
())else
}presum
+=levelsum
;result
+=presum;}
return
result;}
}
更多題解參考:九章演算法
九章演算法 Google面試題 內積
描述 給定長度為n的a陣列,長度為k的b陣列 你可以從a陣列裡取k個數 規則如下 即每次可以從a陣列的最左邊或者最右邊取走乙個數,取走的數從陣列中移除 將取出的ai按取出的順序組成c陣列 求b與c的內積最大值 b與c內積為 i 0k 1bi ci 解釋1 a 1,4,3,2,5 b 1,2,3,4 ...
九章演算法面試題32 小球排序
有紅黃藍三色的小球若干排成一列,這些小球進行排序,請使用盡量少的空間和時間。假設順序為紅色黃色藍色。用兩根指標從頭開始遍歷,第一根指標遇到非紅色時停下,如果第二根指標找到第一根指標之後的第乙個紅色停下,交換兩根指標所指顏色。重複上述過程。直到第二根指標找不到任何紅色。此時第一根指標到最後都是黃色或藍...
九章演算法面試題33 陣列波峰
乙個陣列a 1.n 假設陣列中沒有任何相鄰兩數相等,滿足a 1 n。a i 被稱為波峰,當且僅當a i a i 1 並且a i a i 1 請找到陣列中的乙個波峰。假設陣列中存在相鄰相等的數,該怎麼做?根據條件a 1 a n 可知a中一定存在波峰。用二分法,選擇中點mid,如果a mid 是波峰,則...