![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
剑指offer
文章平均质量分 72
分享一些公司笔试题,面试题
捡起一束光
某985本硕,热爱分享推荐系统、自然语言处理等优质内容的算法工程师
展开
-
剑指offer | 整数中1出现的次数(从1到n整数中1出现的次数)(数位统计 logN复杂度 C++)
题目描述原题链接求出1 ~ 13的整数中1出现的次数,并算出100 ~ 1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。算法(数位计算) O(logn)O(logn)O(lo...原创 2020-02-24 20:28:54 · 819 阅读 · 0 评论 -
剑指offer | 12.矩阵中的路径(类似lc 79.单词搜索 bool型DFS C++)
题目描述(中等难度)原题链接算法(DFS 回溯) O(n∗m∗3k)O(n*m*3^k)O(n∗m∗3k)类似题目:LeetCode题解 | 79.单词搜索(经典DFS回溯 C++)先枚举单词的起点(n∗mn*mn∗m个),然后依次枚举单词的每个字母在这个过程中用st数组标记字母是否被访问过当然也可以直接将已经使用过的字母改成一个特殊字母来标记是否访问过,这样可以减少一部分空间开...原创 2020-02-19 14:50:43 · 207 阅读 · 0 评论 -
剑指offer | 数组中重复的数字(基于交换 / 二分 C++)
写在前面:我写博客主要是为了对知识点的总结、回顾和思考,把每篇博客写得通俗易懂 是我的目标,因为能让别人看懂,才是真的学会了从Math到CS的跨专业经历,让我格外珍惜学习时间,更加虚心好学,而分享技术和知识是快乐 的,非常欢迎大家和我一起交流学习,期待与您的进一步交流题目描述原题链接在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重...原创 2020-02-10 22:15:08 · 232 阅读 · 0 评论 -
剑指offer | 求1+2+3+...+n(递归 + &&短路 C++)
写在前面:我写博客主要是为了对知识点的总结、回顾和思考,把每篇博客写得通俗易懂 是我的目标,因为能让别人看懂,才是真的学会了从Math到CS的跨专业经历,让我格外珍惜学习时间,更加虚心好学,而分享技术和知识是快乐 的,非常欢迎大家和我一起交流学习,期待与您的进一步交流题目描述原题链接求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关...原创 2020-02-10 21:42:23 · 289 阅读 · 0 评论 -
剑指offer 复杂链表的复制
题目描述原题链接算法(线性扫描) O(n)O(n)O(n)复制每个节点,如:复制节点A得到A’,将A’插入节点A后面遍历链表,A’->random = A->random->next;将链表拆分成原链表和复制后的链表时间复杂度是O(n)O(n)O(n),空间复杂度是O(n)O(n)O(n)参考示意图代码/*struct RandomListNode ...原创 2020-02-07 19:03:03 · 129 阅读 · 0 评论 -
【面试题】老鼠毒药问题(二进制思想)
问题有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?解决方法步骤一:给这1000瓶标号:1,2,3,4,5,6…1000,并分别转化为2进制 1:0000000001 2:0000000010 3:0000000011 4:000......原创 2020-02-03 12:33:36 · 12062 阅读 · 0 评论 -
【字节跳动面试题】赛马问题 64匹马8个跑道最少几次赛出最快的4匹马
2020年1月 字节跳动研发岗实习面试题64匹马8个跑道(不计时),问最少要比多少次,才能知道最快的4匹马首先要赛8+1场,得到上表中的相对顺序A1>A2>…>A8B1>B2>…>B8…H1>H2>…>H8A1>B1>…&g............原创 2020-02-03 12:14:14 · 8810 阅读 · 5 评论 -
【面试题】如何判断机器大小端模式
对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,如何安排多个字节的存储,这就有了大端存储模式和小端存储模式利用的原理:联合体union的存放顺序是所有成员都从低地址开始存放,而且所有成员共享存储空间0x 12 34 高字节 低字节 低地址 高地址 ——大端模式 高地址 低地址 ——小端模式void I...原创 2020-02-03 12:10:06 · 199 阅读 · 0 评论 -
【面试题】概率题总结(随机数、抛硬币)
概率题题目1:两个人轮流抛硬币,规定第一个抛出正面的人可以吃到苹果,请问先抛的人能吃到苹果的概率多大?答案:轮流制先抛的人吃到苹果的概率: 1/2+1/231/2 + 1/2^31/2+1/23 + 1/251/2^51/25+… 求得结果为 2/32/32/3题目2:已知一随机发生器,产生 0 的概率是 p,产生 1 的概率是 1-p,现在要你构造一个发生器,使得它产生 0 和 1 的概率......原创 2020-02-03 12:05:44 · 2329 阅读 · 1 评论 -
【笔试题】拼多多 最大乘积 (找出5个数)
题目描述牛客网 原题链接算法(找5个数) O(n)O(n)O(n)在无序数组中,找出最大的三个数,和最小的两个数,结果一定是最大的三个数相乘或最大数*最小的两个数如果有相同的数,默认次序靠前的"大" 如:[1 4 5 5 3]时间复杂度是O(n)O(n)O(n),空间复杂度是O(1)O(1)O(1)代码// 2020年2月2日 星期日 12:37:55#include ...原创 2020-02-02 13:09:48 · 520 阅读 · 0 评论 -
剑指offer 剪绳子(巧妙贪心做法)时间复杂度 O(logn)
题目描述算法(神奇的结论) O(1)O(1)O(1)在最优解下考虑其中任意一段x可能的取值因为x >= 5时 3 * (x - 3) > x,所以x<5若x == 4,则x = 2 * 2若x == 1,则显然不会是最优解所以x只能是2或3又如果含有3个以上的2,则2 * 2 * 2 < 3 * 3,所以最多只有两个2综上所述,最优解只能被分解成3和2...原创 2020-02-01 21:49:55 · 386 阅读 · 0 评论 -
【笔试题】字节跳动 二维数组区块计数
2019年字节跳动算法夏令营实习笔试#include <bits/stdc++.h>using namespace std;typedef long long ll;void dfs(vector<vector<int>>&grid, int a, int b) { //因为要修改原来的grid,所以这里必须用引用 int dx...原创 2019-07-14 10:56:30 · 280 阅读 · 0 评论