
数据结构与算法
文章平均质量分 92
哎呀呀呀浅汐
心中有丘壑,眉目作山河
展开
-
【数据结构】二叉树 上篇
二叉树一般都选择用链式存储方式。int val;// 节点值 TreeNode * left;// 左子树 TreeNode * right;// 右子树 TreeNode(int x) : val(x) , left(NULL) , right(NULL) {} }二叉树节点的深度:从根节点到该节点的最长简单路径边的条数;(以节点为一度)二叉树节点的高度:从该节点到叶子节点的最长简单路径边的条数。(以节点为一度)原创 2023-03-20 15:18:54 · 901 阅读 · 0 评论 -
【数据结构】哈希表
哈希表是根据关键码的值而直接进行访问的数据结构。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希表,函数f(key)为哈希函数。哈希表通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。它牺牲了空间换取了时间,因为要使用额外的数组、set或map来存放数据,才能实现快速的查找。当我们要快速判断一个元素是否出现在集合里时,就要考虑哈希法。原创 2023-03-09 17:05:51 · 342 阅读 · 0 评论 -
【数据结构】数组
数组是存放在连续内存空间上的相同类型数据的集合。数组的元素是不能删的,只能覆盖。区间的定义就是不变量,在循环中坚持根据查找区间的定义来做边界处理,就是循环不变量规则。给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。原创 2023-03-09 11:38:09 · 562 阅读 · 0 评论 -
【数据结构】链表
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,数据域及指针域。链表的入口节点称为链表的头节点,也就是head。链表在内存中不是连续分布的,它通过指针域的指针链接在内存中的各个节点。原创 2023-03-01 15:27:22 · 678 阅读 · 0 评论 -
【数据结构】时间复杂度
时间复杂度是一个函数,它定性描述该算法的运行时间。我们默认CPU的每个单元运行消耗的时间都是相同的,因此算法的运行时间可以用算法的操作单元数量来表示。假设算法的问题规模为n,其操作单元数量用函数f(n)来表示,那么随着n的增大,算法运行时间的增长率和f(n)的增长率相同,这称为算法的渐进时间复杂度,简称时间复杂度,记为O(f(n))。原创 2023-02-23 14:50:35 · 1309 阅读 · 0 评论