2023 阿里笔试题 0315

笔试时间:2023年3月15日 春招实习

第一题

题目:满子二叉树

给定一棵二又树,试求这棵二叉树有多少个节点满足以该节点为根的子树是满二叉树?我们定义一棵树是满二叉树,当且仅当每一层的节点数量都达到了最大值(即无法在这一层添加新节点)。

输入描述

第一行输入一个正整数n,代表节点的数量。接下来的n行,第i行输入两个整数li和ri,代表i号节点的左儿子和右儿子。请注意,如果一个节点没有左儿子/右儿子,则对应的li和ri为-1。

输出描述

子树为满二又树的节点数量。

示例输入

5

2 3

4 5

-1 -1

-1 -1

-1 -1

示例输出

4

说明

2、3、4、5号节点的子树都是满二叉树。

参考题解

Python:[此代码未进行大量数据的测试,仅供参考]

n = int(input())
class TreeNode:
    def __init__(self, val, left, right):
        self.val = val
        self.left = left
        self.right = right

trees = [TreeNode(i,None, None) for i in range(n + 1)]

for i in range(1, n + 1):
    l, r = map(int, input().split(" "))
    trees[i].left = trees[l] if l != -1 else None
    trees[i].right = trees[r] if r != -1 else None

heights = [0 for _ in range(n + 1)]

def getheights(node):
    if not node: return 0
    heights[node.val] = max(getheights(node.left), getheights(node.right)) + 1
    return heights[node.val]

getheights(trees[1])

res = 0

def dfs(node):
    if not node: return 0
    cur = 1 + dfs(node.left) + dfs(node.right)
    global res
    if cur == 2**(heights[node.val]) - 1:
        res += 1
    return cur

dfs(trees[1])
print(res)

第二题

题目:合法的三元组

给定一个数组,请你计算有多少个三元组< i,j,k >满足0≤i<j<k<n且max(ai,aj,ak)−min(ai,aj,ak)=1。

输入描述

第一行输入一个正整数n。第二行输入n个正整数ai  3≤n≤200000

1≤a≤10^9

输出描述

一个整数,代表合法的三元组数量。

示例输入

4

2 2 3 1

示例输出

2

参考题解

C++:[此代码未进行大量数据的测试,仅供参考]

#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_map>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);

    for (int i = 0; i < n; ++i) {
        cin >> a[i];
    }

    unordered_map<int, int> dict;

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2023 秋招笔试题汇总解析 文章被收录于专栏

2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。

全部评论
mark
点赞 回复 分享
发布于 2023-08-14 23:03 江苏
mark
点赞 回复 分享
发布于 2023-08-19 23:27 陕西
mark
点赞 回复 分享
发布于 2023-08-19 23:51 日本
mark
点赞 回复 分享
发布于 2023-08-20 00:01 俄罗斯
mark
点赞 回复 分享
发布于 2023-08-20 00:10 俄罗斯
mark
点赞 回复 分享
发布于 2023-08-20 01:35 日本
春招实习是啥意思✌🏻
点赞 回复 分享
发布于 2023-08-29 23:44 北京

相关推荐

kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
10
16
分享

创作者周榜

更多
牛客网
牛客企业服务