2648. Generate Fibonacci Sequence
Description
Write a generator function that returns a generator object which yields the fibonacci sequence.
The fibonacci sequence is defined by the relation Xn = Xn-1 + Xn-2.
The first few numbers of the series are 0, 1, 1, 2, 3, 5, 8, 13.
Example 1:
Input: callCount = 5 Output: [0,1,1,2,3] Explanation: const gen = fibGenerator(); gen.next().value; // 0 gen.next().value; // 1 gen.next().value; // 1 gen.next().value; // 2 gen.next().value; // 3
Example 2:
Input: callCount = 0 Output: [] Explanation: gen.next() is never called so nothing is outputted
Constraints:
0 <= callCount <= 50
Solutions
Solution 1
Thinking
An infinite Fibonacci stream cannot be materialized as an array and must speak the generator protocol.
Keep adjacent terms \(a,b\), yield \(a\), then roll. The generator advances only when the caller pulls.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |