随笔分类 -  Leetcode

摘要:题目见 2290. 到达角落需要移除障碍物的最小数目。 类似题目:1368. 使网格图至少有一条有效路径的最小代价。 题目大意:给定一个m * n的矩阵,每个点都有对应意义的权值,求从起点到终点的最短距离(权值路径)。 以2290题为例,给定m * n的矩阵grid,每个单元格可能有两个值:0表示无 阅读全文
posted @ 2022-06-02 22:08 夜满星河 阅读(332) 评论(0) 推荐(0) 编辑
摘要:一、先序遍历 顺序为:根节点、左节点、右节点。使用栈来完成递归过程,注意先放右子节点,再放左子节点。 public List<Integer> preOrder(TreeNode root){ List<Integer> ans = new ArrayList<>(); if(root == nul 阅读全文
posted @ 2022-05-01 09:18 夜满星河 阅读(36) 评论(0) 推荐(0) 编辑
摘要:快慢指针的原理类似于时钟里的分针时针,在链表中,二者同时从head首节点出发,快指针一次走两步,慢指针一次走一步,当快指针走到终点时,慢指针所在位置即为链表的中点。 代码: class ListNode{ int val; ListNode next;}ListNode getMidNode(Lis 阅读全文
posted @ 2022-04-30 13:18 夜满星河 阅读(292) 评论(0) 推荐(0) 编辑
摘要:一、快速排序 1.快速排序是利用递归思想的一个分治排序算法,时间复杂度为O(n * logn)。对数组nums[l......r]进行快速排序的方法如下: (1)确认基准点。一般为nums[l]或nums[r],确定左右端点后,从其相反方向寻找不满足条件的数字。 (2)如为升序排列,比基准点小的数字 阅读全文
posted @ 2022-04-30 12:00 夜满星河 阅读(493) 评论(0) 推荐(0) 编辑
摘要:朴素的字符串匹配算法的时间复杂度为O(m*n),m、n分别为主串、模式串的长度。容易理解的是,主串和模式串的指针同步进行,当遇到不匹配的字符时,主串指针将移动到当前指针下一位,因此最坏情况下m个字符都要匹配n次。而KMP算法能在O(m + n)的时间复杂度内完成查找,原理不再介绍,下面介绍实现过程。 阅读全文
posted @ 2022-04-26 16:50 夜满星河 阅读(109) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
🚀
回顶
收起