首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
每天一个算法知识
Wo3Shi4七
创建于2025-07-04
订阅专栏
每天一个数据结构与算法的相关知识,先从数据结构开始,再进一步的刷题
暂无订阅
共17篇文章
创建于2025-07-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
二分查找-哈希优化策略
二分查找-哈希优化策略 在算法中,我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。 问:给定一个整数数组 nums 和一个目标元素 target ,请在数组中搜索“和”为 target 的两
二分查找边界
二分查找边界 查找左边界 问:给定一个长度为 的有序数组 nums ,其中可能包含重复元素。请返回数组中最左一个元素 target 的索引。若数组中不包含该元素,则返回 -1。 用二分查找插入点的方法
二分查找插入点
二分查找插入点 二分查找不仅可用于搜索目标元素,还可用于解决许多变种问题,比如搜索目标元素的插入位置。 无重复元素的情况 例:给定一个长度为 的有序数组 nums 和一个元素 target ,数组不存
二分查找
二分查找 二分查找是一种基于分治策略的高效搜索算法 利用数据的有序性,每轮缩小一半搜索范围,直到找到目标或者搜索区间为空为止 例:给定一个长度为 的数组 nums ,元素按从小到大的顺序排列且不重复。
选择排序
选择排序 选择排序原理非常简单:开启一个循环,每轮从为排序区间选择最小的元素,将其放到已排序区间的末尾 有一个长度为n的数组,选择排序流程如下 初始状态下,所有元素未排序,即未排序(索引)区间为[0,
冒泡排序
冒泡排序 冒泡排序核心思想: 从头开始,不断比较相邻的两个元素,如果前者比后者大,就交换位置 算法步骤 比较相邻元素。如果第一个比第二个大,就交换它们 对每一对相邻元素做同样的工作,从开始第一对到结尾
二叉搜索树
二叉搜索树 二叉搜索树满足以下条件: 对于根节点,左子树中所有节点的值 根节点的值 右子树中所有节点的值。 任意节点的左、右子树也是二叉搜索树,即同样满足条件 1. 。 二叉搜索树操作 我们将二叉搜索
二叉树遍历
二叉树遍历 二叉树常见的遍历方式包括层序遍历、前序遍历、中序遍历和后序遍历等 层序遍历 层序遍历 从顶部到底部逐层遍历二叉树 并在每一层按照从左到右的顺序访问节点 层序遍历本质上属于广度优先遍历,也称
二叉树
二叉树 二叉树是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。 每个节点都有两
哈希冲突
哈希冲突 通常情况下哈希函数的输入空间远大于输出空间,因此理论上哈希冲突是不可避免的。比如,输入空间为全体整数,输出空间为数组容量大小,则必然有多个整数映射至同一桶索引。 哈希冲突会导致查询结果错误,
哈希表
哈希表 哈希表 又称散列表 通过建立key与value的映射 实现高效的元素查询 在哈希表中进行增删查改的时间复杂度都是O(1) 非常高效。 哈希表常用操作 哈希表的常见操作包括:初始化、查询操作、添
双向队列
双向队列 在队列中,我们仅能删除头部元素或在尾部添加元素。双向队列提供了更高的灵活性,允许在头部和尾部执行元素的添加或删除操作。 双向队列常用操作 方法名 描述 时间复杂度 push_first()
队列
队列 队列是一种遵循先入先出规则的线性数据结构。可以将队列看作排队现象,即新来的人不断加入队列尾部,而位于队列头部的人逐个离开。 将队列头部称为“队首”,尾部称为“队尾” 将把元素加入队尾的操作称为“
栈
栈 栈是一种遵循先入后出逻辑的线性数据结构。 我们把堆叠元素的顶部称为“栈顶”,底部称为“栈底”。 将把元素添加到栈顶的操作叫作“入栈”,删除栈顶元素的操作叫作“出栈”。 栈的常用操作 方法 描述 时
列表
列表 列表是一个抽象的数据结构概念,它表示元素的有序集合,支持元素访问、修改、添加、删除和遍历等操作,无须考虑容量限制的问题。列表可以基于链表或数组实现。 链表天然可以看作一个列表,其支持元素增删查改
链表
链表 内存空间是所有程序都可以访问的公共资源,在复杂的系统运行环境下,空闲的内存空间可能散落在内存各处。 有些时候,内存可能无法提供很大的连续空间。此时链表的优势就体现出来了。 链表是一种线性数据结构
数组
数组 数组,是线性数据结构,相同类型元素存储在连续的内存空间,我们将元素在数组中的位置称为索引 数组常用操作 初始化数组 访问元素 数组元素被存储在连续的内存空间中,意味着获取数组元素的内存地址非常容