剑指 Offer 11. 旋转数组的最小数字
class Solution {
public int minArray(int[] numbers) {
int i=0;
int j=numbers.length-1;
while(i<=j){
int mid=(i+j)/2;
if(numbers[mid]>numbers[j]){
i=mid+1;
}else if(numbers[mid]<numbers[j]){
j=mid;
}else{
j--;
}
}
return numbers[i];
}
}
面试题32 - I. 从上到下打印二叉树
class Solution {
public int[] levelOrder(TreeNode root) {
if(root==null) return new int[0];
Queue<TreeNode> queue=new LinkedList<>();
List<Integer> list=new ArrayList<>();
queue.add(root);
while(!queue.isEmpty()){
TreeNode temp=queue.poll();
list.add(temp.val);
if(temp.left!=null) queue.add(temp.left);
if(temp.right!=null) queue.add(temp.right);
}
int[] res=new int[list.size()];
for(int i=0;i<list.size();i++){
res[i]=list.get(i);
}
return res;
}
}
剑指 Offer 32 - II. 从上到下打印二叉树 II
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> res=new ArrayList<>();
if(root==null) return res;
Queue<TreeNode> queue=new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()){
int n=queue.size();
List<Integer> list=new ArrayList<>();
while(n!=0){
TreeNode temp=queue.poll();
list.add(temp.val);
if(temp.left!=null) queue.add(temp.left);
if(temp.right!=null) queue.add(temp.right);
n--;
}
res.add(list);
}
return res;
}
}