头条一面挂经 后台研发岗

简短的挂经,回馈牛客网
前两天面试头条试试水,菜鸡表示真难啊!!
一面跪(大概45m)
  1. 自我介绍
  2. 介绍项目
  3. session和cookie的区别,mysql组合索引
  4. 上算法
  • 1)(想到一半吧)说思路就好:给定一个函数,它完全随机地产生【1,3】范围内的整数(即每个数的产生机率都是1/3)。用给定的函数去求一个完全随机产生【1,89】范围内的整数函数。。。注意,要求每个数的出现的概率都相同。
  • 2)(写出了O(n)的解法,通过)敲代码实现:给你一个字符串,里面只有小写字母,求最长连续不含重复字符的子串的长度
前面介绍10分钟不到,然后直接就上算法了,头条对算法要求真是挺高的
#字节跳动#
全部评论
第一题是个rand5生成rand7的经典题,关键在于若m>n,则randm()可以直接生成randn(),只要randm()生成1到n之间返回即可,生成的数大于n就重新调用。然后可以用(randm() - 1) * m + randm()来生成1到m^2的随机数。楼主用三进制的做法,此时命中率是(2*89)/(3^5)即178/243。其实也可以生成3^6=729以内的数,然后在8*89=712以内返回,结果对89求余后加1即可,命中率是712/729,只不过每次要多调用1次rand3()。如果要深抠命中率的话就太麻烦了。第二题好像在哪里看过原题,记录子串起始位置,整个迭代过程中子串保持不含重复字符的性质,每次不能保持该性质时比较下最大长度。写了下还是磕磕绊绊的,主要是之前命名太随意导致各种写错…… int longest_unique_substr_len(const std::string& s) { constexpr size_t kInitPos = -1; std::vector<size_t> hashmap(26, kInitPos); size_t low = 0; size_t maxlen = 0; for (size_t i = 0; i != s.size(); ++i) { size_t key = s[i] - 'a'; if (hashmap[key] != kInitPos && hashmap[key] >= low) { maxlen = std::max(maxlen, i - low); low = hashmap[key] + 1; } hashmap[key] = i; } return std::max(maxlen, s.size() - low); }
点赞 回复 分享
发布于 2018-05-21 23:32
import java.util.HashMap; public static int lengthOfLongestSubstring(String s) { if (s == null || s.length() == 0) return 0; int len = s.length(); int max = 0, leftBound = 0; HashMap<Character, Integer> map = new HashMap<>(); for (int i = 0; i < len; i++) { char c = s.charAt(i); int tempBound = map.containsKey(c) ? map.get(c) + 1 : 0; leftBound = Math.max(leftBound, tempBound);// 滑动窗口的左门限 max = Math.max(max, i - leftBound + 1); map.put(c, i); } return max; }
点赞 回复 分享
发布于 2018-05-21 20:52
第一题是有一个专门的算法的,由1-a生成1-b的随机数
点赞 回复 分享
发布于 2018-05-21 22:25
第一个是洗牌算法吧
点赞 回复 分享
发布于 2018-05-21 22:25
第二题滑动窗口吧O(n)
点赞 回复 分享
发布于 2018-05-21 20:46
楼主这样都挂了啊 而且还是一面。。。
点赞 回复 分享
发布于 2018-05-21 20:33
楼主是5.19面的后台研发吗,感觉和我面得题目差不多
点赞 回复 分享
发布于 2018-05-21 19:58
第二题还好,第一题没做过还真不好一下想出来……
点赞 回复 分享
发布于 2018-05-21 19:30
第二个题,可以双指针?
点赞 回复 分享
发布于 2018-05-21 18:45
怎么挂掉的?感觉比我的难…
点赞 回复 分享
发布于 2018-05-21 18:24
第一个算法题,应该是一致性hash吧
点赞 回复 分享
发布于 2018-05-21 17:50

相关推荐

头像
2025-12-02 21:34
中南大学 Java
我这边应该算是华为第一批开奖的了,还是要11月底才开,不过今年的流程整体比去年确实要开得早,这一点还是值得表扬的。然后华为也确实很有诚意,给我这样bg的硕鼠开了15a,并且base地还是在杭州,应该是buff拉满了,但凡其他公司开的没这个高,and对象没签上海,可能真选择成为华孝子了。虽然很有诱惑力,但是这个15a的offer里面确实还是有猫腻的:1.&nbsp;薪资构成是这样的,15a&nbsp;=&nbsp;(基本工资+绩效工资)*12&nbsp;+&nbsp;10w年终,虽然绩效工资hr说100%能拿满,年终大部分都能拿满,绩效工资能拿满我可能还选择相信,但10w年终还能拿满,这我就存疑了。反正看了一圈别家的公司报价都是报一般情况下能拿多少年终,比如美团0-6个月,就报3.5个月,但是华似乎是喜欢往最高了报,所以估计10w年终拿满应该也是极少数人。2.&nbsp;公积金只交5%,并且缴纳基数还只是按基本工资交的,这里看似每个月到手的钱变多了,但是总体算下来,可能一年比别家就少拿1-2w。3.&nbsp;月末周六要加班,可以选择调休或双倍加班费,并且平常应该也会加班,感觉不大会像hr说的124能8.30下班,35能5.30下班的,云计算bu强度应该还算比较好的,估计一般情况下9-9-5吧,但是不知道并入ict后会如何。4.&nbsp;还有相关的业务线,听说8,9月份云计算bu内部已经调整了一波,好像还要并入ict下面了,感觉未来的不确定性也比较大。5.&nbsp;华为的认可度应该比不过传统的互联网大厂,技术的前瞻性应该也比不过(个人看法)。6.&nbsp;培养和升职,感觉美团可能更有说法,毕竟见到过1年升L6的,甚至还有两年升L7的,对华为的了解相对较少,只知道华为可能相对稳定一些?毕竟4年一签?综上,还是决定放弃华,准备去团吧,自己选的路,希望不会后悔吧。
变形钢筋:这个薪资结构,年终奖是画大饼啊
OC/开奖
点赞 评论 收藏
分享
迟缓的马里奥求你们别...:我双2,FPGA方向,在成都找工作投了上百家,收到面试的不超过10家,是成都这个地方太有说法了。西南柬埔寨
秋招,不懂就问
点赞 评论 收藏
分享
评论
点赞
42
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务