求
1+2+...+n
,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
//等差数列,右移一位相当于除2,n为,除2的n次方
class Solution {
public int sumNums(int n) {
return (int)(Math.pow(n,2)+n)>>1;
}
}
//
class Solution {
public int sumNums(int n) {
int res = n;
n&&(res+=sumNums(n-1));
return res;
}
}
队列
Queue<String> queue = new LinkedList<String>();
或者 new ArrayDeque<>();方法一样
queue.offer("a");//添加元素
queue.poll();//拿出第一个元素,并在队列中删除
for(String q : queue){
System.out.println(q);
}//遍历
peek() 用于在队列的头部查询元素
queue.size();//返回长度
栈
Stack<Integer> stack = new Stack<>();
push( num) //入栈
pop() //栈顶元素出栈
empty() //判定栈是否为空
peek() //获取栈顶元素