09. 用两个栈实现队列
class CQueue {
Deque<Integer> stack1;
Deque<Integer> stack2;
public CQueue() {
stack1 = new LinkedList<>();
stack2 = new LinkedList<>();
}
public void appendTail(int value) {
stack1.push(value);
}
public int deleteHead() {
if (stack2.isEmpty()) {
while(!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
if (stack2.isEmpty()) return -1;
else {
int delete = stack2.pop();
return delete;
}
}
}
10- I. 斐波那契数列
class Solution {
public int fib(int n) {
int a = 0, b = 1, sum;
for(int i = 0; i < n; i++){
sum = (a + b) % 1000000007;
a = b;
b = sum;
}
return a;
}
}
10- II. 青蛙跳台阶问题
class Solution {
public int numWays(int n) {
int a=1, b=1, sum;
for (int i = 0; i < n; i++) {
sum = (a+b) % 1000000007;
a = b;
b = sum;
}
return a;
}
}
11. 旋转数组的最小数字
class Solution {
public int minArray(int[] numbers) {
Arrays.sort(numbers);
return numbers[0];
}
}