算法高频面试题

时间复杂度的计算方式(Master公式计算递归函数的时间复杂度)

红黑树的了解(平衡树,二叉搜索树),使用场景

红黑树在STL上的应用

贪心算法和动态规划的区别

判断一个链表是否有环,如何找到这个环的起点

实现一个strcpy函数(或者memcpy),如果内存可能重叠呢

实现一个循环队列

排序算法(写快排,归并排序,堆排序),算法的时间复杂度,空间复杂度,是否稳定等

快排存在的问题,如何优化

反转一个链表

Top K问题(可以采取的方法有哪些,各自优点?)

Bitmap的使用,存储和插入方法

二叉树的先序、中序、后序遍历(非递归实现)

二叉树的公共祖先(简单地说,剑指offer上的题大都是高频题)

1-n中有多少个1

字典树(前缀树)的理解以及在统计上的应用

并查集的实现(低频)

数组的全排列

void perm(int list[],int low,int high)

{

if(low==high)//当low==high时,此时list就是其中一个排列,输出list

{

for(inti=0;i<=low;i++)

    cout<< list[i];

cout<<endl;

}

else

{

for(inti=low;i<=high;i++)//每个元素与第一个元素交换

{

swap(list[i],list[low]);

perm(list,low+1,high);//交换后,得到子序列,用函数perm得到子序列的全排列

swap(list[i],list[low]);//最后,将元素交换回来,复原,然后交换另一个元素

 }

 }

}


N个骰子出现和为m的概率

海量数据问题(可参考左神的书)

一致性哈希

线段树的实现(一般是区间求解问题,低频)

KMP,Manacher,Bfprt算法(进阶)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值