給定乙個數字字串 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 拆分出來的任意一組斐波那契...