![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 54
yhc166188
路虽远,行则将至;事虽难,做则必成!
展开
-
设计实现一个 LRU(最近最少使用)缓存数据结构
题目:LRU 缓存机制 设计和实现一个 LRU(最近最少使用)缓存数据结构,使它应该支持一下操作:get 和 put。 get(key) - 如果 key 存在于缓存中,则获取 key 的 value(总是正数),否则返回 -1。 put(key,value) - 如果 key 不存在,请设置或插入 value。当缓存达到其容量时,它应该在插入新项目之前使最近最少使用的项目作废。参考答案:进阶:你是否可以在 O(1) 时间复杂度内完成这两种操作?示例:LRUCache cache = new LRUC转载 2020-06-14 20:45:37 · 2027 阅读 · 0 评论 -
给定两个排序的数组判断是否存在相同的元素
这个问题首先想到的是一个O(nlogn)的算法。就是任意挑选一个数组,遍历这个数组的所有元素,遍历过程中,在另一个数组中对第一个数组中的每个元素进行binary search。用C++实现代码如下:bool findcommon(int a[],int size1,int b[],int size2){ int i; for(i=0;i<size1;i++) { ...原创 2018-05-09 09:41:21 · 462 阅读 · 0 评论 -
阿里面试必会20道C++面试题!
1、如何初始化一个指针数组。解析:首先明确一个概念,就是指向数组的指针,和存放指针的数组。 指向数组的指针:char (*array)[5];含义是一个指向存放5个字符的数组的指针。 存放指针的数组:char *array[5];含义是一个数组中存放了5个指向字符型数据的指针。 按照题意,我理解为初始化一个存放指针的数组,char *array[2]={“China”,”Beijing”};其含义...原创 2018-05-12 16:52:40 · 9458 阅读 · 0 评论 -
C++经典基础知识
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自...原创 2018-05-13 23:20:20 · 146 阅读 · 0 评论 -
常见基础问题解答
baidu interview1、 预处理器标识#error的目的是什么?编译程序时,只要遇到 #error 就会跳出一个编译错误,既然是编译错误,要它干嘛呢?其目的就是保证程序是按照你所设想的那样进行编译的。2、C语言的volatile的含义是什么。使用时会对编译器有什么暗示。终于最后一题了,容易么……如果这个测试是一个关于嵌入式的,那么这道题非常重要!!从词面上讲,volatile的意思是易变...原创 2018-05-15 00:06:11 · 534 阅读 · 0 评论