数据结构与算法
文章平均质量分 53
chentao326
这个作者很懒,什么都没留下…
展开
-
【算法框架】二叉搜索树BST
【算法框架】二叉搜索树BST提取自labuladong得算法小抄查找数是否存在void BST(TreeNode root,int target){ if (root.val == target){ ... ... //找到目标之后,所需要做的事 } //递归 if (root.val < target) BST(root.right,target); if (root.val > target) BST(root.left,target);插入一原创 2022-03-21 21:53:54 · 359 阅读 · 0 评论 -
【leetcode.94. 二叉树的中序遍历】python3 & java
给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:方法方法一:递归二叉树中序遍历是按:左-根-右 的顺序遍历,访问左子树和右子树的时候也是按照这个顺序访问所以这个遍历过程具有递归性质所以只要定义一个方法traverse(root:TreeNode):表示 当前遍历到的root节点的答案之后只要按照定义,递归调用traverse(root.left): 遍历左子树,右边同理递归终止的条件是遇到空节点时间复杂度:O(n):其中 nn 为二叉树节点的个数。二叉树的遍历中每个原创 2022-02-11 15:48:17 · 414 阅读 · 0 评论 -
【leetcode力扣 || 二叉树模板】
二叉树遍历系列总结这里分别给出了三种二叉树的遍历方法与N叉树的前序遍历,及其时空复杂度1:递归:直接递归版本、针对不同题目通用递归版本(包括前序、中序、后序)2:迭代:最常用版本(常用主要包括前序和层序,即【DFS和BFS】)、【前中后】序遍历通用版本(一个栈的空间)、【前中后层】序通用版本(双倍栈(队列)的空间)3:莫里斯遍历:利用线索二叉树的特性进行遍历4:N叉树的前序遍历# Definition for a binary tree node.# class TreeNode:#转载 2022-02-11 14:59:26 · 174 阅读 · 0 评论 -
【力扣leetcode】算法入门——704. 二分查找:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。原创 2021-12-15 11:18:44 · 708 阅读 · 0 评论 -
【数据结构与算法】排序问题总结之归并排序 || 附Java源码
归并排序算法逻辑演示程序归并排序不受输入数据的影响,时间复杂度始终是O(nlogn)算法逻辑把长度为n的数组(arr)分成两半(left right)分别从这两半中各取出一值相互比较,并将较小的存入另一个数组空间(temp)内,直到全部排完如果其中一半有剩余的,便将剩余的一并放入temp中利用递归重复排序演示程序import javax.crypto.AEADBadTagException;public class MerqeSort { static void原创 2021-07-05 22:03:43 · 64 阅读 · 0 评论 -
【数据结构与算法】排序问题总结之冒泡、选择、插入、希尔、归并、快速排序 || 附Java源码
常见排序方法算法总结:图片名词解释:n:数据规模k:"桶"的个数In-place:占用常数内存,不占用额外内存Out-place:占用额外内存冒泡排序:每次比较两个数,如果顺序不一致则交换顺序,不断遍历数组,直到没有可以交换的数为止。代码实现:/** * @author CT * @create 2021-06-27 10:38 * @data 2021/6/27 - 10:38 * 先 把程序跑通 * 再 把边界问题改进 * 后 可重复调用的写成方法 */publi原创 2021-06-27 20:54:12 · 251 阅读 · 3 评论 -
力扣(LeetCode)数据结构——循环队列
力扣(LeetCode)数据结构——循环队列耗时短的(76ms):class MyCircularQueue: def __init__(self, k: int): """ Initialize your data structure here. Set the size of the queue to be k. """ ...原创 2020-03-29 10:57:04 · 277 阅读 · 0 评论