509 Fibonacci Number - Easy
Problem:
The Fibonacci numbers, commonly denoted F(n)
form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0
and 1
. That is,
F(0) = 0, F(1) = 1 F(n) = F(n - 1) + F(n - 2), for n > 1.
Given n
, calculate F(n)
.
Example 1:
Input: n = 2 Output: 1 Explanation: F(2) = F(1) + F(0) = 1 + 0 = 1.
Example 2:
Input: n = 3 Output: 2 Explanation: F(3) = F(2) + F(1) = 1 + 1 = 2.
Example 3:
Input: n = 4 Output: 3 Explanation: F(4) = F(3) + F(2) = 2 + 1 = 3.
Constraints:
0 <= n <= 30
Problem Analysis:
- can used either dynamic programming or recursion
Solutions:
class Solution(object):
def fib(self, n):
"""
:type n: int
:rtype: int
"""
one, two = 0, 1
if n == 0:
return one
for i in range(n-1):
temp = one + two
one = two
two = temp
return two
Similar Questions
- 118-pascals-triangle118 Pascal's Triangle - EasyProblem: Given an integer numRows, return the first numRows of Pascal's triangle. In Pascal's triangle, each number is the sum of the two numbers directly above it as shown: Example 1: Input: numRows = 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] Example 2: Input: numRows = 1 Output: [[1]] Constraints: * 1 <= numRows <= 30 Problem Analysis: * dynamic programming Trick**: add zero at the side Solutions: class Solution(object): def generate(self, numRows): """
- 198-house-robber198 House Robber - MediumProblem You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security systems connected and it will automatically contact the police if two adjacent houses were broken into on the same night. Given an integer array nums representing the amount of money of each house, return the maximum amount of money you can rob tonight *without alerting th