当前位置: 首页 > 面试经验 >

哈啰 安卓开发实习 面经

优质
小牛编辑
52浏览
2024-11-10

哈啰 安卓开发实习 面经

投递渠道:boss

timeline:

  • 2024.11.04 投递
  • 2024.11.05 一面
  • 2024.11.05 oc
  • 2024.11.06 offer 已拒

一面

  1. 自我介绍
  2. 了解哈啰吗
  3. 项目背景
  4. 项目细节
  5. 遇到过哪些问题,怎么解决
  6. 标准库怎么实现的
  7. 有没有了解过其他开源项目
  8. 有没有团队合作过项目
  9. 学了多久
  10. 面向对象有什么好处
  11. 面向对象三大特性
  12. 了解哪些设计模式
  13. 手撕:反转链表(共享屏幕,在 IDE 写,面试官夸习惯好)
    #include <iostream>
    
    /*
     *
     *  给定单链表的头节点head,请反转链表,并返回反转后的链表的头节点。
        示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]
        不限定语言和IDE
     *
     */
    
    struct Node {
        int val_;
        Node* next_ = nullptr;
        Node(int val) : val_{val} {}
    };
    
    Node* reverseList(Node* head) {
        Node* prev = nullptr;
        Node* cur = head;
        while(cur) {
            auto next = cur->next_;
            cur->next_ = prev;
            prev = cur;
            cur = next;
        }
        return prev;
    }
    
    void print(Node* head) {
        while(head) {
            std::cout << head->val_ << ' ';
            head = head->next_;
        }
        std::cout << '\n';
    }
    
    void destroy(Node* head) {
        while(head) {
            auto next = head->next_;
            delete head;
            head = next;
        }
    }
    
    void test() {
        // [1,2,3,4,5]
        auto head = new Node(1);
        auto tail = head;
        for(int i = 2; i <= 5; i++) {
            tail->next_ = new Node(i);
            tail = tail->next_;
        }
    
        print(head);
    
        head = reverseList(head);
    
        print(head);
    
        destroy(head);
    }
    
    int main() {
        test();
    }
    
  14. 反问

当天晚上 oc,第二天发 offer,已拒

 类似资料: