算法结构
文章平均质量分 51
leetcode常见算法题目解析
年少荒芜
年少荒芜,码农白白
展开
-
多个有序数组合并
使用最小堆,每次取堆顶元素,出堆,把该元素所在数组的下一个元素入堆。多个有序数组合并成一个有序数组。原创 2022-08-11 11:19:36 · 1436 阅读 · 0 评论 -
剑指offer
目录一、剑指offer04:二维数组中的查找二、剑指 Offer 05. 替换空格三、剑指 Offer 06. 从尾到头打印链表四、剑指 Offer 07. 重建二叉树五、剑指 Offer 09. 用两个栈实现队列 || 用两个队列实现栈六、剑指 Offer 10- II. 青蛙跳台阶问题七、剑指 Offer 11. 旋转数组的最小数字八、剑指 Offer 12. 矩阵中的路径一、剑指offer04:二维数组中的查找 描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排原创 2022-05-19 14:15:41 · 754 阅读 · 0 评论 -
leecode:子集-组合-排列---N皇后问题
介绍了子集、组合、排列的区别,以及对应的练习题目。原创 2022-05-16 11:12:05 · 450 阅读 · 0 评论 -
最全迷宫最短路径问题(BFS、DFS)
给你一个m*n的迷宫,迷宫中有障碍物(1表示障碍物),你可以上下左右移动,但不能走走过的迷宫,给出指定的起点(x,y)和指定的终点(x_l,y_l),求最短路径长度是多少,或者打印其中一个最短路径,最段路径为: 1 0,2 0,3 0,4 0,4 1,4 2,4 3,4 4。2.使用BFS层序遍历,一层一层往外扩张,使用结构体简化操作。思路:1.使用DFS深度优先遍历来到达终点的所有路径,选择最短的路径。输出:最短路径长度:8。原创 2022-06-02 14:39:25 · 7127 阅读 · 0 评论 -
快速排序(一直记不住,网上有很多版本,找到一个相对简洁的,方便记忆)
目录一、快速排序一、快速排序 快排:递归排序,每次排完一次序之后,分成左右两个部分,左边都是比未排序的第一个小,右边都是比未排序的第一个大。然后递归左边子集,递归右边子集。 每次分两个子集的时候,循环(1.从后往前找到第一个比第一个数小的下标,2.从前往后找到第一个比第一个数大的下标 3.交换这两个下标的数),循环出来后,前面数组除了第一个数,都比第一个小,后面数组都比第一个大,此时交换第一个与交接数,形成左右两个数组。然后递归左右子数组。void quickS原创 2022-05-16 20:00:47 · 214 阅读 · 0 评论 -
Leecode131::分割回文子串
目录一、描述二、思路一、描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]二、思路 使用回溯,每层把从剩下的子字符串选择连续的子串作为回文数,剩下的子字符串下层遍历。1.回溯 + 2.判断回文子串class Solution {public: vector<vect原创 2022-05-16 16:04:44 · 264 阅读 · 0 评论 -
数组第k大的元素
手撕堆排原创 2022-08-11 15:31:34 · 197 阅读 · 0 评论 -
leecode岛屿问题
一、leetcode200. 岛屿数量 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1思路:岛屿问题都原创 2022-05-24 14:43:53 · 627 阅读 · 0 评论