自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 算法篇—众数

文章目录1.众数Ⅰ2.众数1.众数Ⅰa.b.思路🔶由于数组中超过n/2的数,只可能有一个,所以维护一个变量candidete。🔶如果遍历的数与candidete相等,count++。如果不相等,- -count。如果0==count,更新candidete。c.图解d.代码2.众数a....

2022-04-13 21:47:29 882 42

原创 算法篇—消失的数字与消失的两个数字

文章目录1.消失的数字2.1.消失的数字a.b.思路🔸将数组中的每一个数与ret1进行异或。🔸将0—numsSize中的每个数与ret2异或。🔸返回ret1^=ret2的结果。c.代码2.

2022-04-08 15:35:14 804 39

原创 算法篇—只出现一次的数字

文章目录1.只出现一次的数字Ⅰ2.只出现一次的数字Ⅱ1.只出现一次的数字Ⅰa.b.思路🔸数组中的每一个数都与ret进行异或。c.注意🔸相同的数进行异或,结果为零。🔸任何数与零进行异或,结果为本身。d.代码2.只出现一次的数字Ⅱa.b.思路...

2022-04-07 09:54:12 1470 37

原创 算法篇—颠倒二进制位与整数翻转

文章目录1.颠倒二进位2. 整数反转1.颠倒二进位a.b.思路🔸将二进制位 一位一位的取下来,一共取32次。🔸取下来的数从右向左重新组合。c.代码d.代码分析d.注意: 由于题目说的是无符号的整型,所以 unsigned int ret=0;2. 整数反转a.b.思路...

2022-03-30 14:05:45 723 43

原创 数据结构—栈与队列的基本操作(c语言实现)

栈***1.思考******2.基本操作的实现******3.测试***4.思考1.思考1.1 为什么栈用数组来模拟比用链表来模拟更优一些?2.基本操作的实现2.1 初始化栈void StackInit(stack*ps){ assert(ps); ps->_a = (StackDate*)malloc(sizeof(StackDate) * 4); ps->_top = 0; ps->_capacity = 4;}2.2 入栈void StackPush(st

2022-03-28 20:52:32 3770 30

原创 算法篇—旋转数组与旋转链表

文章目录1.旋转数组2.旋转链表1.旋转数组a.思路🔶将k%numsSize等效为m。🔶将区间[numsSize-m,numsSize-1]进行翻转,再将区间[0,numsSize-m-1]进行翻转。然后数组整体进行翻转。b.图解c.代码2.旋转链表a.思路🔶计算节点个数,nodesize。🔶将k%nodesize等效成m。🔶通过快慢指针,使slow指向倒数第m个节点。🔶将slow以后的链表进行翻转,将slow以前的链表进行翻转,然后整体翻转b.图解c.代码今天的

2022-03-20 18:21:52 1444 64

原创 算法篇-删除有序数组中的重复项

文章目录1.删除有序数组中的重复项Ⅰ2.删除有序数组中的重复项Ⅱ1.删除有序数组中的重复项Ⅰa.思路⭐定义变量 int dest=0,cur=1,nums[cur]与nums[dest]逐一比较。⭐nums[cur]!=nums[dest],将nums[cur]放入dest下一个位置,更新dest。⭐nums[cur]!=nums[dest],cur移动。⭐cur==numsSize,结束。返回dest+1。b.图解c.代码int removeDuplicates(int* nums

2022-01-19 21:09:07 6065 72

原创 数据结构—堆的基本操作(c语言实现)

1.基本函数实现a.代码1(向下调整)void AdjustDown(DateType*a, int n, int parent){ int child = parent * 2 + 1; while (child<n) { if ((child+1) < n && a[child] > a[child + 1]) { ++child; } if (a[parent] > a[child]) { Swap(&a

2021-11-20 21:29:22 1824 40

原创 c语言—常见字符串函数与sizeof详解

1.sizeof使用a.代码1int main(){ int a = 0; int arr[] = { 1,2,3,4 }; printf("%d\n", sizeof(a)); printf("%d\n", sizeof a); printf("%d\n", sizeof(&a));//表示地址的大小 printf("%d\n", sizeof(int)); printf("%d\n", sizeof(arr));//计算数组arr的大小(单位为字节) printf("

2021-11-05 21:04:40 9320 36

原创 数据结构-双向链表的基本操作 (c语言实现)

1.创造一个节点,函数实现DListNode* BuyListNode(Datetype x){ DListNode*node = (DListNode*)malloc(sizeof(DListNode)); node->date = x; node->next = NULL; node->prev = NULL; return node;}2. 初始化DListNode* DListInit(){ DListNode*plist = BuyListNod

2021-10-19 14:47:32 3634 35

原创 scanf与scanf_s函数的使用 详解

1.scanf_s(是vs提供的函数)a.代码1int main(){ char a = 0; //scanf_s("%c", &a, 1); scanf_s("%c", &a, sizeof(a)); return 0;}scanf_s有三个参数,最后一个是变量a所占据空间的大小(单位为字节),这里可以写1,也可以写sizeof(a)。如果a为整型的话,第三个参数就为4,或者sizeof(a)。b.代码2int main(){ char a =

2021-10-17 16:56:05 43952 46

原创 数据结构-单链表模拟实现循环队列(c语言实现)

1.

2021-10-16 15:26:13 1788 11

原创 数据结构-循环队列的基本操作 (c语言实现)

1.初始化CQueue* CQueueInit(int k) { CQueue*pq = (CQueue*)malloc(sizeof(CQueue)); (pq->a) = (int*)malloc(sizeof(int)*(k + 1)); pq->front = 0; pq->tail = 0; pq->CQueueSize = k;}//k表示队列的有效数据个数如果按需申请空间,无法判空与判满,所以需要多申请一个空间(不存放数据)2.判空i.

2021-10-14 14:02:29 1215 19

原创 数据结构-单链表基本操作(c语言实现)

1.申请空间并初始化SLNode* BuySLNode(DateType x){ SLNode*node = (SLNode*)malloc(sizeof(SLNode) * 1); if (node == NULL) { printf("failed to open up capacity"); } node->date = x; node->next = NULL; return node;}相对于顺序表,按需求去申请空间,不存在空间浪费问题2.头插...

2021-10-10 17:39:13 2404 26

原创 数据结构-顺序表的基本操作(c语言实现)

1.初始化void SeqListInit(SeqList*pq){ assert(pq); pq->a = (int*)malloc(sizeof(int) * 4);//申请4个大小为int的空间 if (pq->a == NULL) { printf("Failed to open up space"); } for (int i = 0; i < 4; i++) { pq->a[i] = i; }//随便赋值了数值0 1 2 3 pq-&g

2021-10-09 14:33:48 623 33

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除