0
点赞
收藏
分享

微信扫一扫

RK3588平台开发系列讲解(项目篇)常见模型结构

_鱼与渔_ 2023-05-31 阅读 35

文章目录


一、860.柠檬水找零

  1. 只需要维护三种金额的数量,5,10和20。
    有如下三种情况:
    情况一:账单是5,直接收下。
    情况二:账单是10,消耗一个5,增加一个10
    情况三:账单是20,优先消耗一个10和一个5,如果不够,再消耗三个5
  2. 注意:判断false的条件应该在每次循环结束之后,而不是在循环外!
    public boolean lemonadeChange(int[] bills) {
        int five=0;
        int ten=0;
        int twenty=0;
        for(int i=0;i<bills.length;i++){
            if(bills[i]==5){
                five++;
            } else if(bills[i]==10){
                five--;
                ten++;
            } else if(bills[i]==20){
                if(ten>0){
                    ten--;
                    five--;
                    twenty++;
                } else{
                    five-=3;
                    twenty++;
                }
            }
            if(five<0||ten<0||twenty<0){
                return false;
            }
        }
        // if(five<0||ten<0||twenty<0){
        //     return false;
        // } else{
        return true;
        // }
    }

11分钟

二、406.根据身高重建队列

  1. 先排序:身高一定是从大到小排(身高相同的话则k小的站前面)。然后按照下标插入队列中
    public int[][] reconstructQueue(int[][] people) {
        // Arrays.sort(people,(a,b)->{
        //     if(a[0][0]=b[0][0]) return a[0]-b[0];
        //     return 
        // })
        Arrays.sort(people,(a,b)->{//这里a和b就是一维数组
            if(a[0]==b[0]) return a[1]-b[1];
            return b[0]-a[0];
        });
        LinkedList<int[]> list = new LinkedList<>();

        for(int i=0;i<people.length;i++){
            list.add(people[i][1],people[i]);
        }
        return list.toArray(new int[people.length][people[0].length]);

    }

30分钟

三、452. 用最少数量的箭引爆气球

  1. 先排序,判断当前左边界大于上一个的右边界,更新右边界
  2. 排序的时候注意越界的问题。
    public int findMinArrowShots(int[][] points) {
        Arrays.sort(points,(a,b)->{
            // return a[0]-b[0];
            return Integer.compare(a[0],b[0]);
        });
        int result=1;
        for(int i=1;i<points.length;i++){
            if(points[i][0]>points[i-1][1]){//当前左边界大于上一个的右边界
                result++;
            }else{
                points[i][1]=Math.min(points[i][1],points[i-1][1]);//修改右边界

            }
        }
        return result;
    }

21分钟

举报

相关推荐

rknn部署rk3588

0 条评论