Skip to content

算法整理

面试常见

逆序链表求和

  • 注意判空
  • 注意最后的进位,可能需要创建新的节点
  • 注意返回.next
  • 注意返回结果的顺序

每一个数字右侧第一个大于自己的数字

  • 栈记录索引
  • 遍历的时候若小于栈顶索引的元素,则入栈,若大于,则出栈并对结果数组中这个位置赋值。

顺时针遍历二维数组

  • 注意判空
  • 注意退出条件

链表每k个节点倒序。

  • 链表reverse作为方法
  • 计数,>=k的时候end.next =null摘取一块链表,然后reverse,再拼接回去。

排序

  • 快速排序

动态规划

  • LCS(最长公共子序列)
  • 最长连续公共子序列
  • 最长递增公共子序列
  • 一组数字,求特定和有多少方案

蓄水问题

https://blog.csdn.net/mw_nice/article/details/82663857

思维规律

  • 复杂问题分解为相同的若干简单子问题。
  • 从两端同时开始遍历,两个指针移动需要一定判定条件,如哪边更小,移动哪边。
  • 正向考虑、逆向考虑。