来源:力扣(LeetCode)
链接:力扣
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。
输入:flowerbed = [1,0,0,0,1], n = 1
输出:true
输入:flowerbed = [1,0,0,0,1], n = 2
输出:false
class Solution {
public boolean canPlaceFlowers(int[] flowerbed, int n) {
int num = 0,count = 1;
for (int i=0;i<flowerbed.length;i++){
if (flowerbed[i] == 0){
count++;
}else{
count = 0;
}
if (count == 3){
num++;
count = 1;
}
}
if (count == 2){
num++;
}
return n <= num;
}
}
来源:力扣(LeetCode)
链接:力扣
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。
输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1
输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2
输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3
class Solution {
public int fib(int n) {
if (n < 2) return n;
int a = 0, b = 1, c = 0;
for (int i = 1; i < n; i++) {
c = a + b;
a = b;
b = c;
}
return c;
}
}