zoukankan      html  css  js  c++  java
  • 今日头条其他人面经整理

    今日头条:(面经中大家说考的差不多都)

    一面:
    1. 登录界面,用户名,密码,验证码先验证哪一个
    2. coding:求最大连续子数组和(Maximum subarray)
    3. coding:给定两个字符串数组s1和s2,(无重复元素)求s2是由s1删除了哪些元素得到?(例如s1={"a","b","c","d","e"}, s2={"a","e","c"}, 结果应该为{"b","d"})
    4. 写测试用例:查单词app,第一个界面有输入框和“查询”按钮,第二个界面有返回按钮和显示查询内容的webview
     
    1. 求平方根——二分

    二面:

    1. coding:给一个字符串表示IP地址,检测是否合法,其实是很简单的题目,全部的代码也写出来了,但是我居然在String的split方法上卡壳了,完全没有意识到split(".")的时候要加转义符号,被面试官给提醒了 
    2.浏览器输入网址后的全过程 
    3.TCP三次握手四次挥手 
    4. 浏览器输入网址后,如果把http换成https需要测试什么?
    5.大家感受一下: 
     
    followup:请再举一个现实生活中的例子作对比(没想出来)
    6. 测试微信的发图片功能 
    7. TCP和UDP的区别
    另外:后台开发的:
    1. 算法题:类似 Path Sum 的问题;

    2. 算法题:合并数组。


    一面: 首先花了20度分钟讨论我的实习项目,问了一些实现细节,原理还有改进方案。 然后就问了一个和他们工作相关的问题。 关于新闻,首先问我如何判断两条新闻是说的同一件事,需要考虑哪些内容。 我想了想,大概说了下时间,作者,标题什么的,其中提到了关键字的提取,于是就被问到了如何在一篇文章中提取出尽可能多的关键字。和面试官交流一后题目大概变成了: 一篇文章,和一个字典,字典里面有所有的关键字,如何在文章中找到尽可能多的关键字。 考虑到这事实上就是一个多串匹配的问题,于是和面试官讨论了一下AC自动机的方案,中途讲了一下AC自动机的原理还有实现,然后如何在中文文章上使用。 感觉沟通挺顺畅的

    二面:

    1:一开始先问了一道算法题目:n个字符串,要求在每个字符串上都存在的字符。 首先给了一个比较朴素的方案,用哈希表解决。后来面试官要求优化,就改用位图节省了空间,面试官应该还是比较满意的。 2:要求实现单例模式,写完后要求改进满足线程安全。 这道题答得不太好,主要是线程安全那块忘了怎么写了。 3:同步IO与异步IO的区别。 答完后问我可不可以举个例子,我当时也没想到什么好的例子,就举了个微信删除好友和加好友的例子。然后就有了下面这道问题。 4:如果要你设计微信的朋友圈功能,你会怎么做。 这题其实我在九章算法系统设计课里有学过,所以就现学现卖讲了下,所以准备工作做足是很重要的,等会在总结的时候会单独讲这块。


    三面: 二面和三面之间隔了有三个多点,导致我是最后一个面试者,感觉面试官也有点累了,所以没有问太多。 1:算法题,给n个数,找到两个数使得他们的异或值最大。 用Trie轻松解决。 2:设计抢单功能,比如说抢小米手机,要求实现伪代码,保证线程安全。 这道题答得不太好,总之和线程安全相关的问题我都没有准备,比较吃亏。 3:给我一段算法代码,要求我看完后描述算法功能并计算其时间复杂度。 看了后发现是给一个数组,返回每个数左边第一个比自己大的数。计算了一下发现时O(n)的,因为其实他就是维护了一个单调栈结构。每个数只会进栈出栈一次。

    1. 堆排序

    2. 排序一个链表 我当时用的归并排序

    3. 代码:哈夫曼编码问题,给定一些概率值,求每个概率值的编码

    一面:

    1. 分层打印二叉树(层次遍历),每层遍历完后换行

    2. 给定一个数字n,找出[1, n]区间汇总每个数字的二进制表示中1的个数,要求优化。不能直接对每个数字求其中1的个数,而应该直接得出结果

    3. 进程和线程的区别

    4. 进程间通信

    5. 多线程编程经历

    6. TCP/UDP区别,TCP:三次握手,四次释放,TCP机制

    7. const关键字

    二面:

    1. 给定一个三维空间,空间里有一些数字,符合在每个方向都是递增的,给定一个数字,编程求这个点是否在这个三维空间,如果简化成二维怎么找?

    2. ABCDE五个学校,A说E是第一,B说B是第二,C说A是最差,D说C不是最好,E说D是最好的,只有第一和第二名说的是对的,其他都是错的,编程确定五个学校的名词

    3. 给定一个数组,找出里面哪些元素相加等于给定的特定数字,个数不限。

    例如:[1, 2, 3, 5, 94, 97, 98, 99, 100]给定的数字是100,那么符合的有100、1+99、2+98、。。。

    1. 确定N的阶乘末尾有多少0,

    2. 线段树的一个题目,

    3. 还有写string的简单实现,

    4. 大数相加实现

    5. 稀疏矩阵相关的问题

  • 相关阅读:
    (转)Java中金钱的类的计算
    (转)如何实现删除重复记录并且只保留一条?
    MAXIMO-IBM文件夹的笔记
    maximo功能修改笔记
    maximo功能修改(初步理解)
    如何将两张表查询的结果集和下一张表查询
    Birt 折腾一周总结
    一天天的sql总结
    maximo弹框设置新的功能测试总结
    关于对 maximio平台的五个常用类的初步理解及总结
  • 原文地址:https://www.cnblogs.com/lesleysbw/p/6547347.html
Copyright © 2011-2022 走看看