您当前的位置: 首页 > 

TechGuide

暂无认证

  • 3浏览

    0关注

    176博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

腾讯音乐秋招笔试编程三道题(2021-08-26)

TechGuide 发布时间:2021-08-27 21:06:50 ,浏览量:3

恭喜发现宝藏!微信搜索公众号【TechGuide】关注更多新鲜好文和互联网大厂的笔经面经。 作者@TechGuide【全网同名】 点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝

文章目录
  • 第一道:修建二叉树(100%)
    • 题目描述
    • 参考代码:
  • 第二道: 尽可能大的数(100%)
    • 题目描述
    • 参考代码
  • 第三道:方案数量(100%)
    • 题目描述
    • 参考代码

第一道:修建二叉树(100%) 题目描述

牛牛有一棵有n个节点的二叉树,其根节点为root。牛牛想修剪掉当前二叉树的叶子节点,但是牛牛不能直接删除叶子节点。他只能修剪叶子节点的父节点,修剪了父节点之后,叶子节点也会对应删掉,牛牛想在留下尽可能多的节点前提下,修剪掉所有的叶子节点。请你返回修剪后的二叉树。

参考代码:
public TreeNode pruneLeaves (TreeNode root) {
        // write code here
        if (condition(root)) return null;
        return curve(root);
    }

    private TreeNode curve(TreeNode root) {
        if(root == null) return null;
        if(condition(root.left))root.left = null;
        if(condition(root.right))root.right = null;
        pruneLeaves(root.left);
        pruneLeaves(root.right);
        return root;
    }

    private boolean condition(TreeNode root) {
        if (root == null) return true;
        if(root.left != null && root.left.left == null && root.left.right == null) return true;
        if(root.right != null && root.right.left == null && root.right.right == null) return true;
        return false;
    }
// 关注TechGuide! 大厂笔经面经闪电速递!
第二道: 尽可能大的数(100%) 题目描述

牛牛有一个只由字符1’到’9’组成的长度为n的字符串s,现在牛牛可以截取其中一段长度为k的子串并且将该子串当作十进制的正整数,如对于子串"123",其对应的十进制数字就是123。

牛牛想让这个正整数尽可能的大,请你帮助牛牛计算该正整数。函数传入一个长度为n的字符串s和一个正整数k,请你返回答案。

输入:“321”,2
输出:32
参考代码
public static int maxValue (String s, int k) {
        int div=(int)Math.pow(10,k);
        int max=0;
        int cur=0;
        int right=0;
        while(right            
关注
打赏
1665329535
查看更多评论
0.0429s