地平线面经-地图算法(三面挂)

面试官超好!!!

上来先来两道基础题
1、合并有序链表
2、计算树的深度
#include "common.h"


struct ListNode{
    ListNode* next;
    int val;
    ListNode(int v):val(v), next(nullptr){;}

};  // ListNode

struct TreeNode{
    TreeNode* left;
    TreeNode* right;
    int val;
    TreeNode(int a):val(a), left(nullptr), right(nullptr){;}

};  // TreeNode

// 合并两个链表
ListNode* Test1(ListNode* L1, ListNode* L2){
    ListNode* new_head = new ListNode(0);
    ListNode* cur = new_head;
    
    ListNode* p1 = L1;
    ListNode* p2 = L2;
    while(p1&&p1){
        if(p1->val < p2->val){
            cur->next = new ListNode(p1->val);
            cur = cur->next;
            p1 = p1->next;
        }
        else{
            cur->next = new ListNode(p2->val);
            cur  = cur->next;
            p2 = p2->next;
        }

    }

    while(p1){
        cur->next = new ListNode(p1->val);
        p1 = p1->next;
        cur = cur->next;
    }

    while(p2){
        cur->next = new ListNode(p2->val);
        p2 = p2->next;
        cur = cur->next;
    }

    cur->next = nullptr;

    return new_head->next;


}

// 输入一棵二叉树,求该树的深度。
int compute_depth(TreeNode* root){
    if(root==nullptr){
        return 0;
    }

    int left_depth = compute_depth(root->left);
    int right_depth = compute_depth(root->right);
    return max(left_depth, right_depth)+1;
}

// 非递归
int compute_depth2(TreeNode* root){
    if(root==nullptr){
        return 0;
    }
    queue<TreeNode*> q;
    q.push(root);
    int count = 0;
    while(!q.empty()){
        count++;

        int len = q.size();
        while (len-->0)
        {
            /* code */
            auto cur = q.front();
            q.pop();
            if(cur->left){
                q.push(cur->left);
            }
            if(cur->right){
                q.push(cur->right);
            }
            
        }

        
    }
    return count;
}


int main(int argc, char** argv){


    return 0;
}



其余的就是项目相关的,因为投的岗位不是很对口,所以面试官说帮我转岗
#地平线机器人##面经##校招##地平线##算法工程师#
全部评论
我也面了,应该是一个面试官 😃
1 回复 分享
发布于 2021-08-13 16:20
应该是同一个面试官😂,题目都一样
2 回复 分享
发布于 2021-08-31 19:18
老铁,代码完全是手撕还是像牛客一样可以编译的?
点赞 回复 分享
发布于 2021-12-10 22:09
北京地区还是上海?
点赞 回复 分享
发布于 2022-01-29 15:00

相关推荐

2024-12-29 11:08
湖南工业大学 Java
程序员牛肉:简历没什么大问题了。 而且不要再换项目了。三月份就开暑期实习了,现在都一月份了。实在来不及重新开一下项目了。把一个项目写完或许很快,但是把一个项目搞懂吃透并不简单。所以不要换项目了,把你简历上面的两个项目好好挖一挖吧。 具体 体现在:你能不能流利的说出你的项目的每一个功能点代码实现?你能不能说出在这块除了A技术之外,还有其他技术能够实现嘛?如果有其他技术能够实现,那你这块为什么选择了你当前用的这个技术?
投递牛客等公司6个岗位
点赞 评论 收藏
分享
评论
3
17
分享

创作者周榜

更多
牛客网
牛客企业服务