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

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

Go中的遞歸編碼問題:產(chǎn)品總和

Go中的遞歸編碼問題:產(chǎn)品總和

Go
慕運維8079593 2022-09-19 10:17:25
我一直在練習編碼面試問題,這個當前的例子 產(chǎn)品總和與圍棋?;旧?,您需要獲取一個嵌套數(shù)組并返回其乘積總和。示例:[1,3,[2,[5],-3],7] = 1 + 3 + 2*(2-3) + 3*(5) + 7 = 24這也應該等于:1 + 3 + 2*(2) + 2*(-3) + 3*5 + 7 = 24但是,當我嘗試在代碼中實現(xiàn)此內容時,我只能獲得第一個示例。func ProductSum(array []interface{}) int {    sum := productSum(array, 1)    fmt.Println(sum)    return sum}func productSum(array SpecialArray, multiplier int) int {    sum := 0    for _, el := range array {        if cast, ok := el.(SpecialArray); ok {            sum += productSum(cast, multiplier+1)        } else if cast, ok := el.(int); ok {            sum += cast        }    }    return sum * multiplier}如果我更改為 ,然后更改為 - ,則該函數(shù)無法按預期工作。我已經(jīng)嘗試過通過遞歸堆棧來處理這個問題,但仍然感到困惑。sum += castsum += cast * multiplierreturn sum * multiplierreturn sum
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經(jīng)驗 獲得超10個贊

根據(jù)您的代碼,“數(shù)組表示法”應轉換為以下等式:


[1,3,[2,[5],-3],7] = 1*(1 + 3 + 2*(2 + 3 * (5) - 3) + 7) = 1 + 3 + 2*(2 - 3 + 15) + 7 = 11 + 14 * 2 = 39



[1,3,[2,[5],-3],7] = 1*(1 + 3 + 2*(2 + 3 * (5) - 3) + 7) = 1 + 3 + 2*(-1) + 6 * 5 + 7 = 11 - 2 + 30 = 39


在您的解釋中,每個嵌套級別都會使乘數(shù)增加一。


你能粘貼這個練習的確切內容嗎?


編輯:


要獲得 24 個結果,您的代碼應如下所示:


func ProductSum(array []interface{}) int {

    sum := productSum(array, 1)

    fmt.Println(sum)

    return sum

}


func productSum(array []interface{}, multiplier int) int {

    sum := 0

    for _, el := range array {

        if cast, ok := el.([]interface{}); ok {

            sum += productSum(cast, multiplier+1)

        } else if cast, ok := el.(int); ok {

            // Multiplier is applied only to integers in current slice.

            sum += multiplier * cast

        }

    }

    return sum

}

數(shù)組的總和始終乘以其嵌套級別。


查看完整回答
反對 回復 2022-09-19
  • 1 回答
  • 0 關注
  • 78 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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