数据结构与算法
文章平均质量分 67
物联世
这个作者很懒,什么都没留下…
展开
-
LeetCode 39组合总和 40组合总和II 131分割回文串
39组合总和 40组合总和II 131分割回文串原创 2022-12-01 22:13:35 · 289 阅读 · 1 评论 -
LeetCode 216组合总和III 17电话号码的字母组合
216组合总和III 17电话号码的字母组合原创 2022-11-30 22:46:17 · 877 阅读 · 0 评论 -
LeetCode回溯模板,77组合
LeetCode回溯模板,77组合原创 2022-11-30 19:50:47 · 219 阅读 · 0 评论 -
LeetCode 669修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树
669修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树原创 2022-11-30 17:11:44 · 127 阅读 · 0 评论 -
LeetCode 235 二叉搜索树的最近公共祖先 701 二叉搜索树中的插入操作 450删除二叉搜索树中的节点
235 二叉搜索树的最近公共祖先 701 二叉搜索树中的插入操作 450删除二叉搜索树中的节点原创 2022-11-30 15:44:38 · 337 阅读 · 0 评论 -
LeetCode530.二叉搜索树的最小绝对差 501二叉搜索树中的众数 236二叉树的最近公共祖先
530.二叉搜索树的最小绝对差 501二叉搜索树中的众数 236二叉树的最近公共祖先原创 2022-11-29 21:21:18 · 912 阅读 · 0 评论 -
LeetCode 654.最大二叉树 617合并二叉树 700二叉搜索树中的搜索 98验证二叉搜索树
654.最大二叉树 617合并二叉树 700二叉搜索树中的搜索 98验证二叉搜索树原创 2022-11-25 22:50:08 · 672 阅读 · 0 评论 -
LeetCode 513找树左下角的值 112路径总和113路径总和ii 106从中序与后序遍历序列构造二叉树
513找树左下角的值 112路径总和113路径总和ii 106从中序与后序遍历序列构造二叉树原创 2022-11-25 20:45:40 · 990 阅读 · 0 评论 -
LeetCode 110平衡二叉树 257.二叉树的所有路径 404左叶子之和
110平衡二叉树 257.二叉树的所有路径 404左叶子之和原创 2022-11-23 21:49:11 · 625 阅读 · 0 评论 -
LeetCode 104二叉树的最大深度 559.n叉树的最大深度 111二叉树的最小深度 222完全二叉树的节点个数
104二叉树的最大深度 559.n叉树的最大深度 111二叉树的最小深度 222完全二叉树的节点个数原创 2022-11-23 10:18:30 · 86 阅读 · 0 评论 -
leetCode 102 二叉树的层序遍历 226 翻转二叉树 101 对称二叉树
102 二叉树的层序遍历 226 翻转二叉树 101 对称二叉树2原创 2022-11-22 22:34:41 · 273 阅读 · 0 评论 -
LeetCode144二叉树的前序遍历,94二叉树的中序遍历,145二叉树的后序遍历
144二叉树的前序遍历,94二叉树的中序遍历,145二叉树的后序遍历原创 2022-11-21 21:10:15 · 1184 阅读 · 0 评论 -
LeetCode 239.滑动窗口最大值 347.前 K 个高频元素
239.滑动窗口最大值 347.前 K 个高频元素原创 2022-11-21 11:41:07 · 402 阅读 · 0 评论 -
LeetCode 20有效的括号 1047删除字符串中的所有相邻重复项 150 逆波兰表达式求值
20有效的括号 1047删除字符串中的所有相邻重复项 150 逆波兰表达式求值原创 2022-11-16 22:41:05 · 368 阅读 · 0 评论 -
LeetCode 232 用栈实现队列, 225用队列实现栈
232 用栈实现队列, 225用队列实现栈原创 2022-11-15 17:09:49 · 166 阅读 · 0 评论 -
LeetCode 28 实现 strStr() 459 重复的子字符串 KMP算法
28 实现 strStr() 459 重复的子字符串 c++,python实现原创 2022-11-14 20:56:41 · 759 阅读 · 0 评论 -
LeetCode 242.有效的字母异位词 ,349 两个数组的交集 202. 快乐数 1. 两数之和
LeetCode 242.有效的字母异位词 ,349 两个数组的交集 202. 快乐数 1. 两数之和原创 2022-11-01 17:15:11 · 499 阅读 · 0 评论 -
九宫图(python、c++实现)
九宫图就是把1~9九个数字填到3×3,使其每一横坚斜之和都相等随后发展了,4 * 4 和 5 × 5 的宫图的实现。一、python 代码实现def palace_map(n): # 先全部初始化为 0 matrix = [[0] * (n) for i in range(n)] # 首先确定最后一行的中间为 1 row = n - 1 col = ...原创 2019-01-29 20:43:04 · 1648 阅读 · 0 评论 -
计数排序(python、c++)
计数排序不是比较排序,它的排序速度快于任何比较排序算法主要步骤:找出待排序的数组中最大数和最小数,确定数组C 的长度统计数组中每个值为 i 的元素,出现的次数,存入数组 C 的第 i 项对所有的计数累加(从 C 中的第一个元素开始,每一项和前一项相加)反向填充目标数组:将每个元素放在新数组的第 C[i] 项,每放一个元素就将 C[i] 减去1时间空间复杂度都是 O ( n + ...原创 2019-02-11 10:02:02 · 197 阅读 · 0 评论 -
旋转数组(python、c++)
旋转数组给一个n×n的数组,旋转90度。主要思路:left ----> top : 把左边的一列数,转到顶部。bottom ----> left: 把底部的一行数,转到左边的一列数。right ----> bottom:把右边的一列数, 转到底部的行数。top ----> right:把顶部的一行数,转到右边的一列数。有多个层数,循环依次执行上面 1- 4 ...原创 2019-01-30 17:24:09 · 373 阅读 · 0 评论 -
快速排序(简单版本,Python、C++)
快速排序使用分治法策略把序列分为两个子序列步骤从数列中,选择一个元素作为基准值,一般都是三点选取法(开头,中间,结尾)。比较基准值,所有比基准值小的元素放在基准值左边,比它大的元素放在右边,等于的放在那一边都可以。分割结束后,该基准值就放在中间。递归重复步骤2,3 子数列排序。以下的实现方式,时间复杂度为 O(n log n) , 空间复杂度 O (n log n)最坏的情况 时...原创 2019-02-15 23:56:47 · 203 阅读 · 0 评论 -
冒泡和选择排序(Python、C++)
冒泡排序主要步骤比较相邻的两个元素,如果第一个比第二个大,交换他们的位置依次比较每每相邻的两个元素,这样比较完后,最后一个交换得到的元素就是最大的数对所有的元素重复执行上面的1 、2 步骤,最后的不用比较。直到比较完所有相邻的元素该冒泡排序的时间复杂度最坏的情况是 O(n^2) , 对于大量的数据排序,是很没有效率的。属性:时间复杂度稳定O(1) 的额外空间O(n^2)...原创 2019-01-31 11:27:15 · 166 阅读 · 0 评论 -
归并排序(Python、C++)
归并排序采用分治法各层的分治可以同时进行主要步骤:分割 ,递归把当前的序列平均分成两半集合,保证元素顺序的同时,将上一步得到的子序列子集成到一起下列使用的是递归法,若是想使用迭代法,则自己Google申请空间,用于存放合并(两个已经排好序)的序列。两个指针,分别设为(两个已经排好序)的开始位置。比较两个指针指向的元素,比较大小,小的放到合并空间,指向小的元素指针移向下一个元素...原创 2019-02-15 16:15:09 · 121 阅读 · 0 评论 -
插入排序(Python、c++)
插入排序主要步骤从已经排好序的元素中,从后往前比较。如果比插入的值大,则交换位置,再次比较前一个数。直到比较的数比插入的值小,则停止循环。就排好从小到大的所有序列最坏的时间复杂度为 O(n^2) , 最优的时间复杂度为 O(n)Python 实现# 插入排序def insert_sort(items): n = len(items) if n == 1: ret...原创 2019-02-01 23:00:28 · 122 阅读 · 0 评论