- 博客(76)
- 收藏
- 关注
原创 递归、搜索与回溯算法(专题二:深搜)
深搜、计算布尔二叉树的值、求根结点到叶结点的数字之和、验证二叉搜索树、二叉搜索树中第k小的元素、二叉树的所有路径、回溯算法、递归
2024-01-19 21:58:21
1090
1
原创 递归、搜索与回溯算法(专题零:解释回溯算法中涉及到的名词)【回溯算法入门必看】
回溯算法、深搜、递归、递归和for循环的转换。回溯算法入门优选文章!!!
2023-12-19 10:21:17
1100
1
原创 回溯算法第二篇(全排列【基于排列树实现】、旅行售货员问题【基于排列树实现】、N皇后【基于子集树实现的】)
回溯算法,N皇后、全排列、旅行售货员问题
2023-12-13 19:10:15
1298
原创 深入浅出排序算法之快速排序(重要)⭐⭐⭐⭐⭐
快速排序算法,快速排序算法的时间复杂度、快速排序算法的空间复杂度、快速排序算法的几种实现方法、快速排序算法的优化方法
2023-10-31 22:39:47
329
3
原创 了解C语言中的atoi函数和模拟实现
如果str中的第一个非空白字符序列不是一个有效的整数,或者因为str为空或者它只包含空白字符而不存在这样的序列,则不执行转换。
2023-10-19 20:47:24
285
2
原创 C语言的offsetof宏模拟和用宏实现交换奇偶位
既然是宏,分别拿出用循环不是很现实,那就用&这些位的方式来做。,偶数位拿出,就是要&上101010101010……,一般我们默认是32位整数,4位对应一位16进制就是8个5,8个a。奇数位左移一位就到了偶数位上,偶数位右移一位就到了奇数位上,最后两个数字或起来,就完成了交换。2、对该指针用->访问其成员,并取出地址,由于结构体起始地址为0,此时成员偏移量直接相当于对0的偏移量,所以得到的值直接就是对首地址的偏移量。此时,每一个成员的偏移量就成了相对0的偏移量,这样就不需要减去首地址了。
2023-10-18 21:42:03
142
1
原创 单身狗1和单身狗2(C语言版)
例如:有数组的元素是:1,2,3,4,5,1,2,3,4,6。只有5和6只出现1次,要找出5和6。例如:有数组的元素是:1,2,3,4,5,1,2,3,4,6。只有5和6只出现1次,要找出5和6。一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。这种方法就不细致讲解了,代码就能说明方法了。编写一个函数找出这两个只出现一次的数字。这种方法就不细致讲解了,代码就能说明方法了。编写一个函数找出这一个只出现一次的数字。
2023-10-18 21:34:36
525
3
原创 字符串的左旋和判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言实现)
字符串的左旋和判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言实现)
2023-10-13 16:23:58
195
原创 算法宝典2——Java版本(此系列持续更新,这篇文章目前3道)(有题目的跳转链接)(此份宝典包含了二叉树的算法题)
题目跳转链接给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 ,空树也是平衡二叉树。如果是按照上述代码的思路来写,此算法的时间复杂度就是O(n^2)!!!这是在是太大了!什么原因造成的呢?我们在求3结点的高度时,其实就把9结点的高度求出来了,但是递归到9结点的时候,又求了一次,导致重复求树的高度,有n个结点,每个结点就要求n次高度,也就是n*n!!!
2023-09-16 22:09:26
365
11
原创 重数和众数问题——C语言实现
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。//用来记录每个数出现的个数}例如,S={1,2,2,2,3,4}。多重集S的众数是2,其重数为3。的话,就必须有如下这段代码,将b后面指向地址的内容赋值为0。题还是很简单的,理清思路就可以了♪(・ω・)ノ。注:上面的代码中的(1)和(2)都是可以的!该多重集合众数是:2,重数是:3。//把b后面size个元素置为0。
2023-09-15 21:41:45
866
原创 Java版的数据结构——栈和队列
双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First。1. 若进栈序列为 1,2,3,4 ,进栈过程中可以出栈,则下列不可能的一个出栈序列是(栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。不同的是Vector是线程安全的。
2023-09-13 22:07:30
793
原创 Java版的数据结构——链表
LinkedList的官方文档LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。【说明】实现了List接口2. LinkedList的底层使用了双向链表3. LinkedList没有实现RandomAccess(该接口是实现随机访问)接口,因此LinkedList不支持随机访问。
2023-09-12 00:00:35
1542
8
原创 算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)
力扣、牛客网。
2023-09-10 16:22:19
1031
5
原创 MySQL初阶1——了解数据库、简单的SQL语句
DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,例如建立、使用和维护数据库。DB:数据库(Database)SQL:结构化查询语言,(Structure Query Language),专门用来操作/访问数据库的通用语言。MySQL:其中的一款关系型数据库管理系统以下是2019年关系型数据库,采用关系模型来组织数据,简单来说,关系模型指的就是二维表格模型。类似于Excel工作表。非关系型数据库。
2023-08-09 16:12:41
3126
16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人