TechBlog
首页
分类
标签
搜索
关于
← 返回标签列表
加载中...
#标签
共
798
篇文章
算法竞赛从入门到国奖算法基础入门篇-二分算法
本文介绍了二分查找算法及其应用场景,重点讲解了在有序数组中查找元素边界的方法。文章首先解释了二分查找的基本原理,通过例题展示了如何查找元素的第一个和最后一个出现位置。接着介绍了二分查找的两种模板(查找左端点和右端点),并详细说明了模板选择的条件和注意事项。此外,文章还探讨了二分查找在答案求解中的应用,包括木材加工、砍树和跳石头等问题,展示了如何通过二分法寻找满足特定条件的最大值或最小值。最后提供了多个实际问题的代码实现,帮助读者理解二分查找的具体应用。
时间:12/24/2025
251215-251221集训
本文整理了多个编程竞赛题目及其解法,主要涉及数学、位运算、滑动窗口等算法技巧。内容包括:A题通过温度条件判断烧烤方案;B题利用模运算判断瓦片布局;C题通过输出连续1和0满足子序列条件;D题通过元素平移操作构造排列;E题简单模拟门位置判断;F题通过特定排列方式构造数组;G题利用哈希表贪心分段;H题通过等差数列性质判断可行性。此外还包含位运算题目如异或积、高低位交换,以及滑动窗口模板题等。各题均提供代码实现和优化思路,展示了多种算法在竞赛中的应用。
时间:12/21/2025
CC刷题集string类一
本文介绍了四个字符串处理算法题解:1.计算字符串最后一个单词长度,使用getline读取整行并通过rfind定位空格;2.验证回文串,通过过滤非字母数字字符并转换大小写后双指针判断;3.寻找字符串中第一个唯一字符,利用数组统计字符出现次数;4.反转字符串,使用双指针交换首尾字符。每个解法都提供了详细思路和代码实现,涉及字符串常用操作和基础算法技巧。
时间:12/21/2025
Python基础知识-数据结构篇
数据结构可变?有序?允许重复?典型用途list✅✅✅通用序列,动态数组tuple❌✅✅固定结构,函数返回值dict✅✅(3.7+)键❌/值✅键值映射,快速查找set✅❌❌去重,成员检测,集合运算str❌✅✅文本处理frozenset❌❌❌不可变集合,可用作键。
时间:12/19/2025
数据结构堆与优先级队列PriorityQueue
优先级队列是一种按元素优先级决定出队顺序的数据结构,底层通过堆实现。堆分为小堆和大堆,具有完全二叉树性质,可使用数组高效存储。堆的核心操作包括向下调整(O(logn))、向上调整(O(logn))以及建堆(O(n))。基于这些操作可模拟优先级队列的插入、删除等功能。Java中的PriorityQueue默认实现小堆,支持自动扩容,插入和删除操作时间复杂度为O(logn),适用于需要动态优先级排序的场景。
时间:12/18/2025
LeetCode-30015241632-动态规划进阶题型总结最长递增子序列最长有效括号
本文总结了四道动态规划进阶题目的解题思路,涵盖子序列、子数组、子串三类场景。每道题提供两种解法(基础DP和优化/非DP解法),并分析核心难点与易错点:最长递增子序列:基础DP解法O(n²)定义dp[i]为以i结尾的最长长度,优化解法O(nlogn)使用贪心+二分维护最小结尾数组;乘积最大子数组:需同时维护最大/最小乘积以处理负数反转情况,优化解法用变量代替数组降空间复杂度;分割等和子集:转化为01背包问题,注意总和奇偶判断和一维DP的倒序遍历;最长有效括号:DP解法分直接配对和嵌套配对两种情况,栈解
时间:12/18/2025
2数据库的索引与底层数据结构
常见的数据结构:二叉树、红黑树、Hash表、B-TreeMySQL数据库作为一种结构化的数据库,存取操作的瓶颈在磁盘I/O,因此,基于B-Tree改造的B+Tree是最适合的数据结构。
时间:12/18/2025
排序算法简介及分类
排序算法简介及分类
时间:12/18/2025
LeetCode-Hot100-滑动窗口面试纯背版四
本文介绍了两个字符串处理问题及其滑动窗口解法。第一个问题要求找出无重复字符的最长子串长度,通过维护哈希集合和双指针实现,时间复杂度为O(n)。第二个问题需要找到字符串中所有字母异位词的起始索引,通过比较固定长度窗口内的字符频率数组来判定异位词。两个问题都利用了滑动窗口技术,通过动态调整窗口边界来高效解决问题,避免了暴力枚举的低效性。这些方法在处理字符串子串问题时具有通用性,能有效降低时间复杂度。
时间:12/18/2025
c语言栈和队列
一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的则。:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。:栈的删除操作叫做出栈。出数据也在栈顶。
时间:12/17/2025
在稀缺时代,定义性价比新标准
摘要:内存价格暴涨催生存储新方案。GPSpark创新性地利用NVMeSSD和以太网技术,通过硬件卸载引擎实现单口100GbE网线下270MIOPS性能,将传统存储方案的"性能/成本"比重新定义。该方案以确定性价格和稳定供应,为AI训练、影视渲染等场景提供"打开冰箱"般的数据访问体验,在波动市场中构建起可靠的算力基石。
时间:12/17/2025
C语言贪吃蛇游戏超详解包含音效颜色封装成应用等
C语言贪吃蛇游戏开发详解本文详细介绍了使用C语言开发贪吃蛇游戏的全过程,包含以下核心内容:开发环境配置必须使用Windows控制台主机运行提供了控制台终端设置的具体步骤关键技术应用Win32API实现键盘控制EasyX图形库添加游戏音效动态内存管理处理蛇身增长游戏功能实现控制台光标隐藏与定位彩色文字显示界面蛇身移动与碰撞检测食物生成与分数计算特色功能变速控制(加速/减速)游戏暂停与继续彩蛋设计项目采用模块化开发,分为头文件和源文件,代码注释详细。最终成品包含欢迎界面、游
时间:12/17/2025
数据结构栈和队列及相关算法题
栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。概念:只允许在⼀端进⾏插⼊数据操作,在另⼀端进⾏删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstInFirstOut)思路:如果是左括号就入栈,如果是右括号就取栈顶元素看是否匹配,若匹配成功,左括号出栈,继续查看下一个字符。出栈:把不为空的队列中前size-1个数据挪到另一个队列,再将最后一个数据出队列(此时相当于出栈)出队列:popST不为空直接出,否则将pushST中的数据先倒过去,再出数据。出栈:栈的删除操作叫做出栈。
时间:12/16/2025
Linux-内核三大核心结构体详解驱动开发视角
编写字符设备驱动demo时,就是通过初始化file_operations、关联inode与cdev、利用file的private_data传递设备信息,实现read/write/mmap等功能。——相当于文件/设备的“身份证”,存储的是“文件/设备是什么、属于谁、对应什么资源”等固定信息,与“文件是否被打开”无关(一个文件/设备只有一个inode,不管被打开多少次)。//设备号(主设备号+次设备号,仅设备文件有效)//文件/设备类型+权限(核心!
时间:12/16/2025
八大排序之冒泡排序快速排序和堆排序
冒泡排序(BubbleSort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。这个算法的名称由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端(升序排列)。
时间:12/16/2025
数据结构C语言单向链表-链表基本操作尾插法建表插入15分钟试讲教案模版
【代码】《数据结构C语言:单向链表-链表基本操作(尾插法建表、插入)》15分钟试讲教案【模版】
时间:12/15/2025
数据结构-初阶详解线性表3-双链表
我们可以通过哨兵位的front指针直接找到尾结点。
时间:12/15/2025
AVL树的学习
平衡因子(左子树高度-右子树高度)的绝对值<=1。
时间:12/15/2025
C语言中的面向对象思想
对于c语言当一个结构体要创建多个变量时,若我们分开管理就会比较难以管理,但是我们可以通过结构体数组(对象数组)的形式对其进行管理。可见当我们需要管理多个gpio时我们就可以通过一个数组的方式将其管理在一个数组内,并且通过对数组的遍历我们还可以批量处理数据,方便了我们的管理。
时间:12/15/2025
图论问题-最短路径
所有边进行的第二次松弛,minDist数组为:-2-2-10所有边进行的第三次松弛,minDist数组为:-3-3-2-1所有边进行的第四次松弛,minDist数组为:-4-4-3-2(本示例中k为3,所以松弛4次)最后计算的结果minDist[4]=-2,即起点到节点4,最多经过3个节点的最短距离是-2,但正确的结果应该是1,即路径:节点1->节点2->节点3->节点4。松弛过程如下:要从1到4,三条边。
时间:12/15/2025
数据结构03树
树(Tree):n(n>=0)个结点构成的有限集合当n=0时,称为空树;树中有一个称为“根(Root)”的特殊结点,用r表示;其余结点可分为m(m>0)个互不相交的有限集T1T2TmT1T2...Tm,其中每个集合本身又是一棵树,称为原来树的“子树(SubTree)”下图这些都不是树子树是不相交的除了根节点外,每个结点有且仅有一个父节点一棵N个结点的树有N-1条边二叉树TTT:一个有穷的结点集合这个集合可以为空。
时间:12/15/2025
数据结构单向无头不循环链表
链表其实就像火车车厢一样,一个接一个的串起来。所以链表在逻辑上是线性的,在物理上是非线性的,因为链表是一个一个的节点串起来,空间上不是连续的,所以在物理上是非线性的链表的节点又分为两部分:1、数据域:存储具体数据的成员2、指针域:存储下一个节点的成员。
时间:12/15/2025
数组矩阵理论基础
数组&&矩阵理论基础
时间:12/15/2025
算法笔记线段树SegmentTree
线段树:主要是用于高效解决区间查询和更新的问题,它通过分治思想和用空间换取时间的方法,将数组区间进行递归二分,使其构成一颗逻辑上的二叉树,最后使得对区间范围的操作能够在对数时间O(logN)内完成。线段树解决的问题范畴:大范围信息可以只由左、右两侧信息加工出,而不必遍历左右两个子范围的具体状况线段树的操作思想:1)构建线段树的思想:用线段树解决问题的思想本质上就是把原来的数组当做一个二叉树的叶子节点,然后根据范围构建上层的节点,
时间:12/15/2025
上一页
1
2
3
4
5
...
34
下一页
第 1 / 34 页