题目:
思路:
1.先定义一个最小值 ,一般将第一个数定义位最小值
2.然后遍历,如果后面的值比最小值还要小,那么就将当前值替换为最小值,如果大于最小值则计算差值,然后比出最大值
class Solution {
public int maxProfit(int[] prices) {
int res=0;
int maxprofile = 0;
int minPrice = prices[0];
for(int i = 0; i < prices.length ; i++){
if(minPrice > prices[i]){
minPrice = prices[i];
}
maxprofile = prices[i] - minPrice;
res=Math.max(res,maxprofile);
}
return res;
}
}
题目:
思路:
1.使用队列与LinkedList集合,先将当前行根节点的值记录下来,在将当前值从队列重删除
2.将当前值的
class Solution {
public List> levelOrder(TreeNode root) {
if(root==null)
return new ArrayList<>();
Queue
queue.add(root);
List> res=new ArrayList<>();
while(!queue.isEmpty()){
int n=queue.size();
List
for(int i=0;i
TreeNode curr=queue.poll();
list.add(curr.val);
if(curr.left!=null)
queue.add(curr.left);
if(curr.right!=null)
queue.add(curr.right);
}
res.add(list);
}
return res;
}
}
左子节点跟右子节点保存在队列中,然后依次循环。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)