# 1. leetcode 前言

前端学习,算法与数据结构必不可少。这篇文章,主要是博主刷 leetcod 的相关记录,以及算法与数据结构的学习笔记。该文涉及常用数据结构、排序算法、常用的算法以及前端手写编程题。

主要是为了形成算法思维,养成良好的算法思路。并将相应的数据处理运用到日常开发中。

希望会对大家有些帮助!!

# 2. 笔记内容

# 2.1 复杂度分析

# 2.1.1 时间复杂度

是什么?

  • 一个函数,用大 O 表示,比如 O(1)、O(n)、O(logN)...
  • 定性描述该算法的时间

O(1)

// O(1)
let i = 0
i += 1
1
2
3

O(n)

// O(n)
for (let i = 0; i < n; i += 1) {
  console.log(i)
}
1
2
3
4

O(n)+O(1)=O(n)

// O(n)+O(1)=O(n)
let i = 0
i += 1
for (let j = 0; j < n; j += 1) {
  console.log(j)
}
1
2
3
4
5
6

O(n)*O(n)=O(n^2)

// O(n)*O(n)=O(n^2)
for (let i = 0; i < n; i += 1) {
  for (let j = 0; j < n; j += 1) {
    console.log(i, j)
  }
}
1
2
3
4
5
6

O(n)*O(n)=O(n^2)

// O(n)*O(n)=O(n^2)
for (let i = 0; i < n; i += 1) {
  for (let j = 0; j < n; j += 1) {
    console.log(i, j)
  }
}
1
2
3
4
5
6

O(logN)

// O(logN)
let i = 1
while (i > n) {
  console.log(i)
  i *= 2
}
1
2
3
4
5
6

# 2.2 常用数据结构

# 2.3 排序算法

# 2.4 查找算法

# 2.5 JavaScript 手写算法

# 2.6 五大常用算法

# 2.7 leetcode 刷题

# 3. 那就开始吧~

写作是一件十分枯燥的事情,如果我写的这些文字对你有些许帮助的话,还请赏个 star 哈~~

Last Updated: 3/25/2024, 5:09:19 PM