
高频算法面试题
文章平均质量分 73
面试中的高频算法题
Quan_2022
把每一招、每一式融会贯通,然后尽量忘得一干二净
展开
-
高频算法面试题,TopK问题
描述: 如从海量数字中寻找最大的第 k 个数,这类问题我们称为 TOPK 问题,主要有如下解决方法: 一、基于堆来实现 求前 k 大,用最小堆 求前 k 小,用最大堆 求最大的第 K个数思路: 1、先放入元素前 k 个建立一个最小堆。 2、迭代剩余元素: 如果当前元素小于堆顶元素,跳过该元素(肯定不是前 k 大) 否则替换堆顶元素为当前元素,并重新调整堆。 3、最后获取 最小堆 中的值,即为 topk。 力扣对应的题目:LeetCode125 C++ 代码实现: 1、利用 Priority_queue原创 2021-08-29 21:38:24 · 539 阅读 · 0 评论 -
高频算法面试题,LRU缓存机制,详解
一、LRU算法简介 LRU即 Least Latest Used最近最少使用的, 该算法是大部分操作系统为最大化页面命中率而广泛采用的一种页面置换算法。该算法的思路是,发生缺页中断时,选择未使用时间最长的页面置换出去。从程序运行的原理来看,最近最少使用算法是比较接近理想的一种页面置换算法,这种算法既充分利用了内存中页面调用的历史信息,又正确反映了程序的局部问题。 二、LRU算法描述 LRU 算法实际上是让你设计数据结构:首先要接收一个 capacity 参数作为缓存的最大容量,然后实现两个 API,一个是原创 2021-08-29 00:01:31 · 717 阅读 · 0 评论 -
常考算法面试题:字符串(大数)相加、字符串(大数)相减、字符串(大数)相乘,解题方法总结
常考算法面试题:字符串相加、字符串相减、字符串相乘 笔者今年秋招,最近投了一些大厂的实习,某为的手撕代码题目为 字符串相乘,某讯的手撕代码题目为字符串相减。 于是去LeetCode和网上搜索了一下,发现这类题目是面试的常考题。只要会四则运算这道题的思路就很清晰,主要字符串的处理,难点也在于字符串处理。 以下代码本人均在GCC编译器下运行过,没有问题。自己写上主函数、输入、调用算法函数即可编译运行验证,或者去leetCode找到原题直接粘贴上去。 1、字符串相加 LeetCode上的字符串相加题目如下所示:原创 2021-03-20 21:58:52 · 1929 阅读 · 0 评论