算法面试常考内容收集

必须达到能手写下列问题对应代码的程度:

  1. 在链表这一节:
    • 单链表反转;
    • 链表中环的检测;
    • 两个有序的链表合并;
    • 删除链表倒数第n个结点;
    • 求链表的中间结点等。
  2. 在栈这一节:
  • 在函数调用中的应用;
  • 在表达式求值中的应用;
  • 在括号匹配中的应用。
  1. 在排序这一节:
    • 如何在O(n)的时间复杂度内查找一个无序数组中的第 K大元素?
  2. 在二分查找这一节,
    • 二分查找的四个变体。

对于海量数据的处理思路问题

  • 比如说,我们有10GB的订单数据,我们希望按订单金额(假设金额都是正整数)进行排序,但是我们的内存有限,只有几百MB,没办法一次性 把10GB的数据都加载到内存中。这个时候该怎么办呢?
  • 如果你所在的省有50万考生,如何通过成绩快速排序得出名次呢?
  • 假设我们有10万个手机号码,希望将这10万个手机号码从小到大排序,你有什么比较快速的排序方法呢?
  • 假设我们有1000万个整型数据,每个数据占8个字节,如何设计数据结构和算法,快速判断某个整数是否出现在这1000万数据中?
  • 我们希望这个功能不 要占用太多的内存空间,最多不要超过100MB,你会怎么做呢?

工业实践部分

  • 老师解析了Glibc中的qsort() 函数;
  • Java中的HashMap如何实现工业级的散列表;
  • Redis中的有序集合(Sorted Set)的实现,工程上使用的红黑树等等。
  • 尤其是对于哈希算法,老师解析了安全加密、数据校验、唯一标识、散列函数,负载均衡、数据分片、分布式存储等应用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值