2020-05-12 华为无线MAE产品部 暑期实习 技术面

问的比较基础, 仅作分享. 后续的主管面忘了记录.

1. 自我介绍

2. 面试问题

  1. 数学建模
    详细介绍建模
    建模过程中编程怎么解决的
  2. 数据结构与算法
    常用数据结构介绍一下
    图的遍历有哪些
    图怎么用邻接矩阵表示
    算法里面的NP问题介绍一下
    贪心算法和动态规划的区别
  3. 数学问题
    数学的千禧年问题了解吗
    费马大定理是什么

3. 手撕代码

  1. 给定数组, 输出最长递减子序列 (如 6 3 5 4 7 8 可输出 3 4 7 8)
  2. 给定总时间和一些试卷的价值和所需时间, 做哪一些试卷能够价值最大(背包问题)
  3. 开放题: 无线业务中图的遍历, 开放性地询问思路

附上面试时写的第一题的代码 (力扣有类似题, 也有简单解法输出最长长度. 不过力扣没有要求输出该最长序列. 值得一做)

import java.util.Deque;
import java.util.LinkedList;
import java.util.List;

public class Test {
    public static List<Integer> func(int[] arr) {
        if (arr == null || arr.length == 0) {
            return null;
        }
        Deque<Integer> s = new LinkedList<>();
        int maxLength = 0;
        for (int num : arr) {
            while (!s.isEmpty() && num >= s.peek()) {
                s.pop();
            }
            s.push(num);
            maxLength = Math.max(maxLength, s.size());
        }
        LinkedList<Integer> l = new LinkedList<>();
        for (int num : arr) {
            while (l.size() != 0 && num >= l.getLast()) {
                l.removeLast();
            }
            l.add(num);
            if (l.size() == maxLength) {
                return l;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        int[] arr = new int[]{6 3 5 4 7 8};
        // int[] arr = new int[]{9, 4, 3, 2, 5, 4, 3, 2};
        System.out.println(func(arr));
    }
}
#实习##面经##华为##产品#
全部评论
虽然面试题部分较为基础, 但代码部分还是有难度的, 华为能问到背包问题还是比较少见的
点赞 回复 分享
发布于 2020-08-16 17:16
请问主管面主要问什么呢
点赞 回复 分享
发布于 2021-09-18 13:36

相关推荐

牛客963010790号:为什么还要收藏
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
2 6 评论
分享
牛客网
牛客企业服务