【校招总结】2019美团点评笔试编程题(A~Z美团骑手)2019金山校招笔试题

有道选择题是golang的,没学过。选择输出顺序。。。查了一下defer是延迟函数,panic是抛出33这个err异常,然后在defer中通过recover捕获这个异常,所以顺序是 a d 33 e

func main(){
    defer func(){
        fmt.Println("d")
        if err:=recover();err!=nil{
            fmt.Println(err) 
        }
        fmt.Println("e")
    }()
    f()
}
func f(){
    fmt.Println("a")
    panic(33)
    fmt.Println("b")
    fmt.Println("c")
}

要贴上代码的是一道深度遍历的题,很简单的深度遍历。问这个矩阵中的连续的1 可以组成几块区域。

public class wps {
    private int [][]a;
    public wps(int [][]b){
        a=new int[b.length+2][b.length+2];
        for (int i = 1; i < a.length-1; i++) {
            for (int j = 1; j < a[i].length-1; j++) {
                a[i][j]=b[i-1][j-1];
            }
        }
    }
    public int getNum(){
        int count=0;
        for (int i = 1; i < a.length-1; i++) {
            for (int j = 1; j < a[i].length-1; j++) {
                if(a[i][j]==1){
                    count++;
                    fun(i,j);
                }
            }
        }
        return count;
    }
    public void fun(int i,int j){
        System.out.println("递归层次");
        a[i][j]=0;
        if(a[i+1][j]==1){
            fun(i+1,j);
        }
        if(a[i][j+1]==1){
            fun(i,j+1);
        }
        if(a[i][j-1]==1){
            fun(i,j-1);
        }
        if(a[i-1][j]==1){
            fun(i-1,j);
        }
    }
    public static void main(String[] args) {
        int [][]a={ {1,1,0,0,0},
                    {0,1,0,1,1},
                    {0,0,0,1,1},
                    {0,0,0,0,0},
                    {0,0,1,1,1}
        };
        System.out.println(new wps(a).getNum());;
    }
}

只通过测试示例系列。。。

还有一些需要写伪代码的题目,LRU。没接触过。最后的加分题是描述自己做过的项目,做过但不会说系列。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值