LeetCode和剑指offer题目大合集

AlgorithmCode

本仓库收集一些算法的答案,目标是整理一套系统的算法参考答案以供其他学习者参考,我也在慢慢的学算法并且在坚持刷题,我会不定期的上传新的题目,希望大家共同努力!

https://github.com/zfman/AlgorithmCode

在线编程网站:

  • LeetCode
  • 牛客网-剑指offer

目录

  • 排序算法
  • LeetCode
  • 剑指offer

排序算法

算法 稳定 时间复杂度 空间复杂度 备注
选择排序 no N2 1
冒泡排序 yes N2 1
插入排序 yes N \~ N2 1 时间复杂度和初始顺序有关
希尔排序 no N 的若干倍乘于递增序列的长度 1
快速排序 no NlogN logN
三向切分快速排序 no N \~ NlogN logN 适用于有大量重复主键
归并排序 yes NlogN N
堆排序 no NlogN 1

快速排序是最快的通用排序算法,它的内循环的指令很少,而且它还能利用缓存,因为它总是顺序地访问数据。它的运行时间近似为 \~cNlogN,这里的 c 比其他线性对数级别的排序算法都要小。使用三向切分快速排序,实际应用中可能出现的某些分布的输入能够达到线性级别,而其它排序算法仍然需要线性对数时间。

  • 选择排序
  • 插入排序
  • 冒泡排序
  • 冒泡排序改进版
  • 希尔排序
  • 自顶向下归并排序
  • 自底向上归并排序
  • 快速排序
  • 三向切分快速排序
  • 堆的基本操作
  • 堆排序

LeetCode

1-50

  • 2.两数相加
  • 7.反转整数
  • 9.回文数
  • 13.罗马数字转整数
  • 27.移除元素
  • 28.实现strStr()
  • 35.搜索插入位置
  • 38.报数

51-100

  • 53.最大子序和
  • 58.最后一个单词的长度
  • 66.加一
  • 67.二进制求和
  • 69.x的平方根
  • 83.删除排序链表中的重复元素
  • 100.相同的树

101-150

  • 112.路径总和
  • 125.验证回文串

151-200

  • 160.相交链表
  • 167.两数之和 II - 输入有序数组
  • 188.杨辉三角

剑指offer

  • 两个链表的第一个公共结点
  • 链表中倒数第k个结点
  • 树的子结构
  • 合并两个排序的链表
  • 二叉树的镜像
  • 矩形覆盖
  • 调整数组顺序使奇数位于偶数前面
  • 反转链表

你可能感兴趣的:(数据结构)