版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
解答:
class Solution {
public int[] sortArrayByParity(int[] A) {
int start = 0;
int end = A.length-1;
while (start < end){
if (A[start]%2 == 1 && A[end]%2 == 0){
int tmp = A[start];
A[start] = A[end];
A[end] = tmp;
start++;
end--;
}else if(A[start]%2 == 0 && A[end]%2 == 0){
start++;
}else if (A[start]%2 == 1 && A[end]%2 == 1){
end--;
}else{
start++;
end--;
}
}
return A;
}
}
首尾交换的思想。
斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
给定 N,计算 F(N)。
解法一:递归
class Solution {
public int fib(int N) {
if(N==1) return 1;
else if(N == 2) return 1;
else {
return fib(N-1)+fib(N-2);
}
}
}
解法二:递推
class Solution {
public int fib(int N) {
if(N<=0)
return 0;
else if(N==1)
return 1;
else if(N==2)
return 1;
else{
int low = 1;
int high = 1;
int sum = low+high;
for(int i=2;i < N; i ++){
low = high;
high = sum;
sum = low+high;
}
return high;
}
}
}