知识点

LeetCode算法题

  1. LeetCode算法题

    1. 学习

    2. 复习

      1. 111.【二叉树最小深度】

        解题思路:

        BFS

      2. 752.【打开转盘锁】

        解题思路:

        BFS,注意deadends就要放弃该路径,直接continue;并且转过的数字不能重新转回去,否则会死循环。

      3. 773.【滑动谜题】

        解题思路:

        对于计算最小步数的问题,很有可能就是使用BFS。我们转化一下题目,就转化成了:在穷举出board可能衍生出的所有局面里,求到达target的最短路径的步数。这就可以使用BFS了

        同时,因为二维数组不太好操作,并且board是个固定大小的二维数组,因此可以转化为一维数组进行操作。将board转化为一维数组后,我们可以定义一个映射将一维数组中的每个索引在二维数组中的相邻元素,在一维数组中的映射,映射出来。

      4. 阶乘问题

        1. 172.【阶乘后的零】

          解题思路:

          该题目不可能直接计算,需要取巧。需要将问题转化为:n!最多可以分解出多少个因子 5。

          难点在于像 25,50,125 这样的数,可以提供不止一个因子 5,因此,对于小于n的所有5的倍数,都需要计算提供多少个5的因子。

      5. 去重、移动问题

        1. 26.【删除有序数组中的重复项】

          解题思路:

          使用快慢指针

        2. 27.【移除元素】

          解题思路:

          使用快慢指针

        3. 283.【移动零】

          解题思路:

          使用快慢指针,并且最后用for循环补0即可。