300分钟搞定算法面试

300分钟搞定算法面试

一、掌握实用的数据结构

1、数组、字符串

数组查询快,增删慢。

leetcode242(字符串转数组,然后用Arrays.sort(str))

2、链表

链表增删快,查询慢。

leetcode25(自顶向下,每k个一反转:递归主函数+反转函数)

3、栈(头进头出)

leetcode20(以右括号为键创建成对的哈希表,再创建一个栈;右括号入的时候判断是否死,死不了就消除,左括号直接加;最后检验栈是否为空)

leetcode739(创建存储索引的递减栈和res数组;先弹栈,后加入的索引处的温度比栈顶处温度大则弹出栈顶,记录索引差,存入res数组;弹栈结束后压栈,比栈顶小则将索引压入,不处理res数组)

4、队列(尾进头出)

5、双端队列:

leetcode239(构建一个递减的双端队列(存索引)和一个res数组;遍历原始数组,把比新加入索引处的数小的,全部弹出;然后加入新的索引;然后把队列头部的不在框内的poll掉;最后把peek处索引的最大元素给res(索引对应要找好))

6、树

遍历:

a、前序遍历:应用在在树里进行搜索;或者创建一个新的二叉树

b、中序遍历:应用二叉搜索树,排好序的

c、后序遍历:从底部往上。

leetcode230(中序遍历,生成递增的列表;第k-1个元素为所求)

 

二、高级数据结构(这个章节就简单看看吧,先不刷)

1.优先队列(堆)

leetcode347(数为值,次数为键构建哈希表;然后以键的大小建立K大小的小顶堆;最后小顶堆即为所求)

2.图

leetcode(785)

3.前缀树(字典树)

(1)构建

(2)搜索

leetcode212()

4.线段树

5.树状数组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值