842 將陣列拆分成斐波那契序列

2021-10-11 15:44:56 字數 1023 閱讀 2226

給定乙個數字字串 s,比如 s = 「123456579」,我們可以將它分成斐波那契式的序列 [123, 456, 579]。

形式上,斐波那契式序列是乙個非負整數列表 f,且滿足:

0 <= f[i] <= 2^31 - 1,(也就是說,每個整數都符合 32 位有符號整數型別);

f.length >= 3;

對於所有的0 <= i < f.length - 2,都有 f[i] + f[i+1] = f[i+2] 成立。

另外,請注意,將字串拆分成小塊時,每個塊的數字一定不要以零開頭,除非這個塊是數字 0 本身。

返回從 s 拆分出來的任意一組斐波那契式的序列塊,如果不能拆分則返回 。

回溯+剪枝:

public list splitintofibonacci(string s)

public static boolean backtrack(list list,string s,int len,int index,int sum,int pre)

long curlong=0;//儲存目前要找的

for(int i=index;i//剩下的以0開頭,剪枝

curlong=curlong*10+s.charat(i)-'0'

;//新增字元

if(curlong>integer.max_value)

//太大了,剪枝

int cur=

(int)curlong;

if(list.size(

)>=2)

else if(cur>sum)

//拆分出的數字的和大於最後兩個數值的和,剪枝

}//以上是剪枝操作,要是不符合直接break

list.add(cur)

; if(backtrack(list,s,len,i+1,pre+cur,cur))

//沒走成功

else

}return

false

;}

沒有太清楚

Leetcode 842 將陣列拆分成斐波那契序列

給定乙個數字字串 s,比如 s 123456579 我們可以將它分成斐波那契式的序列 123,456,579 形式上,斐波那契式序列是乙個非負整數列表 f,且滿足 0 f i 2 31 1,也就是說,每個整數都符合 32 位有符號整數型別 f.length 3 對於所有的0 i f.length 2...

字串拆分成陣列 842將陣列拆分成斐波那契數列

這個 星期六要考四級,真的是花36塊錢體驗下卷子。上次去華南理工比數學競賽,沒想到成功混了乙個一等獎 首先來看看題目 給定乙個數字字串 s,比如 s 123456579 我們可以將它分成斐波那契式的序列 123,456,579 形式上,斐波那契式序列是乙個非負整數列表 f,且滿足 0 f i 2 3...

491,回溯演算法解將陣列拆分成斐波那契序列

問題描述 給定乙個數字字串s,比如s 123456579 我們可以將它分成斐波那契式的序列 123,456,579 形式上,斐波那契式序列是乙個非負整數列表 f,且滿足 另外,請注意,將字串拆分成小塊時,每個塊的數字一定不要以零開頭,除非這個塊是數字 0 本身。返回從 s 拆分出來的任意一組斐波那契...