🧮 Algorithm Notebook


  • brief introduction
  • Table of contents
  • Latest documents
  • Collection Download

    无重复字符的最长子串

    ## 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: txt 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: txt 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: txt 输入: s = "pwwkew" ………

    grayson - Sept. 9, 2022, 10:45 a.m.


    常见排序算法

    ## 简单选择排序 算法原理 简单排序算法的基本思想为每一趟从待排序的数据元素中选择最小(最大)的一个元素作为首元素,直到所有元素排完为止。 参考代码 在算法实现时,每一趟确定最小元素的时候会通过不断地比较交换来使得首位置为当前最小。 交换是个比较耗时的操作,其实我们很容易发现,在还未完全确定当前最小元素之前,这些交换都是无意义的。 我们可以通过设置一个变量 minInd,每一次比较仅存储………

    grayson - Sept. 2, 2022, 8:52 p.m.


    回溯算法解题框架

    ## 含义 回溯算法建立在 DFS 基础之上,与 DFS 的主要不同在于: DFS 是一个劲的往某一个方向搜索,等到到达一个方向的终点时,才恢复状态,回溯上一层。 回溯算法在达到结束条件后,就恢复状态,回溯上一层。 当问题需要回头,以此来查出所有的解的时候,使用回溯算法,即满足结束条件或者发现不是正确路径的时候(走不通),要撤销选择,回退到上一个状态,继续尝试,直到找出所有解为止。 ………

    grayson - Aug. 28, 2022, 3:37 p.m.


    斐波那契数列

    ## 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为………

    grayson - Aug. 25, 2022, 10:58 a.m.


    幂运算

    快速幂 求 $x^n$ 最简单的方法是通过循环将 $n$ 个 $x$ 乘起来,依次求 $x_1, x_2,..., x_n$,时间复杂度为 $O(n)$,而快速幂算法可将时间复杂度降低至 $O(log_n)$。 快速幂算法实际上是二分思想的一种应用,具体推导如下: $x^n = x^{n / 2} \times x^{n / 2}$,令 $n / 2$ 为整数,则需要分为奇偶两种情况(设向下取………

    grayson - Aug. 23, 2022, 3:34 p.m.



    grayson