0voice / interview_internal_reference Goto Github PK
View Code? Open in Web Editor NEW2023年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。
2023年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。
BST(二叉搜索树)在wiki中已经有详细的描述了,下面陈述一下我个人的思路:
对于bst的搜索,有两种常用的编码实现,递归和迭代。对于普通的通过key来查找,
递归和迭代都很容易实现,如果添加一个影响因子(比如说通过key查找的同时,还要满足父节点的value是多少...),这样通过递归实现,也就是添加一个参数,函数体里添加一个逻辑即可,但对于迭代来说,实现的复杂度就增加了很多。本例就是一个典型,所以这题推荐使用递归实现,主要因为递归实现难度不高。
下面分析一下,本题用递归实现的方式。(从不同的角度看问题,就有不同的解决方案)
求bst第k小的节点?
角度1:也就是示例中的解法,我用自己的语言翻译一遍:如果存在某个节点n,她的左子树中节点的个数是k-1,那么这个节点n就是要找的节点。此时会存在3种情况:(bingo,左子树节点个数正好是k-1;左子树节点数大于k-1,那么以节点n的左子节点为基础,重新找;左子树的节点数小于k-1,说明要找的节点在节点n的右子树上,以n的右子节点为基础,继续查找,此时k因子也会有响应的调整),这种解法,我称为"多次左子树遍历"
角度2:基于bst的特性,中序遍历的结果,取第k个节点,就是问题的解,这种解法,我称为"中序遍历 + 计数"
两种解法的对比:
There are some broken links on the page 12.Zookeeper篇
There is a PR with appropriate fix: #91
可以通过类似 LinkedHashMap 的方式降低时间复杂度。
是关于c++java开发还是硬件开发还是算法的面试题,可以细分下吗
原题目:
给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度
分析:答案给的two pointers解法,但是前提是数组是有序的才行
修改建议:
把题目中数组改为从小到大排列的有序数组
或修改算法,先将数组排序,这样时间复杂度为O(nlogn)
如何实现一个高效的单向链表逆序输出?
顺序进栈,再依次弹出
是否要反思,我们技术圈都关注些什么?
linux的零拷贝和写时复制这中特性有什么书籍或者资料可以系统学习吗?
十分感谢提供的宝贵经验,希望后续能同步最新的面经.
希望加上面试的背景,比如面试要求的几年经验,具体职位
可以使用JSON.parse(JSON.stringify(arr1)) 实现数组和对象的深拷贝
const arr1 = {
a:1,
b:[{name:1}],
c:{age:1}
}
这是关于哪个岗位的 通用的吗
目前文件太多太乱,README没有起到导航作用。
MongoDB下的Markdown文件有很多都是空的
ping目标ip时,如果在相同网段直接先查询arp缓存,如果找到目标ip的mac地址,直接发送出去,如果缓存中查不到,则从相同网段的网卡发arp问目标ip的mac地址,拿到mac地址后发送出去。如果不在主机的网段里,会查询默认网关ip,接着查询arp缓存,是否有网关的mac地址记录,如果有,填充该mac地址,发送出去,如果没有,发arp问网关的mac地址,得到结果,发送出去。
RT,我想对于绝大多数(特别是第一次求职的)应聘者来说,对目标公司的业务是非常陌生的,在这样的情况下,生搬硬套地强行记忆诸如:
给定一个链表,删除链表的倒数第N个节点,并且返回链表的头结点
jvm的垃圾回收机制?
java类加载机制?如何实现自定义类加载器?findClass与loadClass的区别?
这样的问题,即便是用九牛二虎之力记住了,也是没有根基的浅层记忆。如果在这些面试题的后面附上不光是简单的答案,更加上一些实际在此公司中业务场景中,为何需要这样的知识的解说,那样不仅会容易理解很多,对面试者准备来说,时间也花得更加的有意义,学习到了真正的东西。
请问这个整理是什么岗位的面试呢?是大数据方面的面经还是什么呢?
设置一个头结点,它的下一个节点是原始指针,设置两个指针,一个快指针,一个慢指针,快指针多走n+1步,这样当快指针到达尾部的下一个节点的时候,慢指针的下一个节点就是要删除的节点
var removeNthFromEnd = function(head, n) {
let dummy = new ListNode(0);
dummy.next= head;
let slow =dummy;
let fast = dummy;
while(n>=0){
fast = fast.next;
n--;
}
if(!fast) return head.next;
while(fast!=null){
fast = fast.next;
slow = slow.next;
}
slow.next = slow.next.next;
return dummy.next;
};
参考代码太简单了,比如遇到循环引用对象怎么办?
可以按技术方向进行分类吗,比如添加大数据方向,算法方向。
你好,算法篇好像没有题目啊?
补充一点把 bigkey的分析与定位 还有hotkey的分析与定位 在redis性能问题里面 这个也很重要。。
var EPSINON = 0.0000000001;
function sqrt2( ){
var low = 1.4, high = 1.5;
var mid = (low + high) / 2;
while (high-low>EPSINON){
console.log(low, high, mid)
if (mid*mid>2){
high = mid;
}
else{
low = mid;
}
mid = (high + low) / 2;
}
return mid;
}
console.log(Math.sqrt(2), sqrt2())
其中,mid*mid>2
符号反了
建立一个页面,类似左边是目录,右边是内容,可以便于查看。
Cloning into '~/0voice/interview_internal_reference'...
remote: Enumerating objects: 263, done.
remote: Counting objects: 100% (263/263), done.
remote: Compressing objects: 100% (169/169), done.
remote: Total 263 (delta 96), reused 247 (delta 93), pack-reused 0
Receiving objects: 100% (263/263), 367.17 KiB | 4.32 MiB/s, done.
Resolving deltas: 100% (96/96), done.
error: cannot stat '1.3.0 在云计算大数据处理场景中,每天运行着成千上万的任务,每个任务都要进行 IO 读写。存储系统为了更好的服务,经常会保证高优先级的任务优先执行。当多个作业或用户访问存储系统时,如何保证优先级和公平性.md': File name too long
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'
2)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0
--------------------分割线-------------------------------
不是非我杠精,关于null,isNull,isNotNull其实是要看成本的,是否回表等因素总和考虑,才会决定是要走索引还是走全表扫描
也给大家找了一个作者的博文,仅供参考!!!
node* pcur=head->next;
此处应修改为 node* pcur=head, 否则输出时将会丢失第一个元素。
天猫国际是**消费升级的第一跨境平台,是阿里经济体5年2000亿美金进口承诺的主力军。2019年天猫国际技术部和考拉合并成立了阿里巴巴大进口技术部,是阿里巴巴国际化战略的核心技术部门。致力于进口业务的技术突破和创新,助力**的消费者实现“买遍全球”的需求,跨入未来的万亿级市场。想了解更多的话,直接联系我吧,我帮你组内直推,大量HC,走过路过不可错过。
邮箱:[email protected]
微信:isHunterZhang
1.建立一个键值对
2.遍历数组
3.每次读到一个数
3.1如键值对为空,则填入这个数及值1
3.2如数与键相同,则值加1
3.3如键与数不同,则值减1,当值为0时清除键
4.可运行到数组结尾,也可判断当值大于等于数组剩余未遍历元素个数的二分之一时退出
on windows:
$ git clone https://github.com/0voice/interview_internal_reference.git
Cloning into 'interview_internal_reference'...
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 733 (delta 8), reused 4 (delta 1), pack-reused 710
Receiving objects: 100% (733/733), 514.31 KiB | 54.00 KiB/s, done.
Resolving deltas: 100% (349/349), done.
error: unable to create file 02.华为篇/2.1.0 static有什么用途?.md: Invalid argument
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'
#9 里面提得非常详细,原文我觉得应该要修改一下
再者,还要考虑对应网卡是否是多路访问网络
ping目标ip时,先查路由表,确定出接口
我已经按各个公司分好目录了。这样子好找些。
写了一下MySQL与MongoDB的对比
MySQL | MongoDB |
---|---|
Database | Database |
Table | Collection |
Row | JSON or BSON |
Column | Field |
Index | Index |
table joins(表连接) | $lookup或嵌套文档 |
primary key(主键) | _id |
统计分析 | aggregation |
Redo日志 | Journal日志 |
Binlog日志 | Oplog日志 |
SQL模式语句 | MongoDB模式语句 |
---|---|
create table | db.test.insert({x:1})或db.createCollection("test") |
alter table add column | db.test.update({},{'$set':{a:2}}) |
alter table drop column | 删除字段$unset |
create index | db.test.createIndex({x:1,a:-1}) |
drop table或者truncate table | db.test.drop() |
drop database | db.dropDatabase() |
insert into | db.test.insertOne()或db.test.insert() |
select col1 from test order by a limit 1,2 | db.test.find({xxx:10},{x:1,a:1}).sort({a:1}).skip(1).limit(2) |
update | db.test.update({x:1},{$set:{a:6}}) |
delete from | db.test.deleteMany({x:1}) |
tesr
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.