您当前的位置: 首页 > 

TechGuide

暂无认证

  • 4浏览

    0关注

    176博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【2022-09-08】腾讯音乐秋招笔试三道编程题

TechGuide 发布时间:2022-09-08 23:45:13 ,浏览量:4

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经,目前已更新至美团、微软… 作者@TechGuide【全网同名】 点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝

第一题: 题目描述

给定一个只包含小写字母字符串,每次可以选择两个相同的字符删除,并在字符串结尾新增任意一个小写字母。 请问最少多少次操作后,所有的字母都不相同?

字符串长度 2) { map[i - 'a'] -= 2; count--; res++; } } } if (count > 0) { for (int i = 0; i preEnd || inStart > inEnd) { res.add(null); return res; } int rootVal = preOrder.get(preStart); ArrayList indexs = new ArrayList(); for (int i = inStart; i List[TreeNode]: if not preOrder: return [None] ans = [] n = len(preOrder) for i in range(n): if inOrder[i] == preOrder[0]: for l in self.getBinaryTrees(preOrder[1:i + 1], inOrder[:i]): for r in self.getBinaryTrees(preOrder[i + 1:], inOrder[i + 1:]): node = TreeNode(preOrder[0]) node.left = l node.right = r ans.append(node) return ans # vx公众号关注TechGuide 实时题库 闪电速递 第三题: 题目描述

给定一棵二叉树,二叉树的每个结点只有0或2个孩子。

你需要对每个结点赋值一个正整数,使得每个结点的左右子树权值和相等。

你需要返回所有结点的最小权值和对1e9+7取模的结果。

二叉树结点个数不超过1e5。

输入描述

{0,0,0}

输出描述

3

题目case如图: 在这里插入图片描述

思路

正常递归,因为两侧值相等,每次把左右子树小的值设置成大的值即可,然后本节点最小赋值为1。

不知道需不需要处理大数,反正Python不需要,其他语言可能需要注意一下long吧。

代码 Java版本
public int getTreeSum(TreeNode tree) {
     // write code here
     return (int) (traverse(tree) % ((Math.pow(10, 9) + 7)));
 }

 long traverse(TreeNode root) {
     if (root == null) return 0;
     long leftVal = traverse(root.left);
     long rightVal = traverse(root.right);
     return 1 + Math.max(leftVal, rightVal) * 2;
 }
 
}

class TreeNode {
 int val = 0;
 TreeNode left = null;
 TreeNode right = null;

 public TreeNode(int val) {
     this.val = val;
 }
}
// vx公众号关注TechGuide 实时题库 闪电速递
Python版本
class TechGuide:
    def getTreeSum(self, tree: TreeNode) -> int:
        def f(node):
            return 0 if not node else max(f(node.left), f(node.right)) * 2 + 1

        return f(tree) % 1000000007
# vx公众号关注TechGuide 实时题库 闪电速递
关注
打赏
1665329535
查看更多评论
立即登录/注册

微信扫码登录

0.0465s