自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (1)
  • 收藏
  • 关注

原创 单片机环境搭建(STM32)

单片机开发环境搭建

2022-06-10 17:52:20 315

原创 单片机开发流程

开发流程

2022-06-10 17:05:57 718

原创 模拟实现memmove函数

在实现memmove函数时,需要注意目标和源头两部分在内存中的位置关系,因为memmove函数是可以重叠内存区域的。目标区域和源区域的位置关系可以分为三种。第一种:目标的内存位置小于源内存位置,在移动源数据时选择从前向后的方式进行移动。第二种:目标的内存位置大于源内存位置,在移动源数据时选择从前向后的方式进行移动。第三种:目标区域与源区域重叠,并且目标的内存位置大于源内存位置。在移动源数据时选择从后向前的方式进行移动。按照以上三种方式移动源数据,就不会出现还未移动,数据就已经被覆盖的情况。

2021-09-30 16:24:03 145

原创 环形链表找环的起点

1、给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表输入:head = [3,2,0,-4]输出:返回索引为 1 的链表节点解释:链表中有一个环,其尾部连接到第二个节点。解题思路:1、使用快慢指针,先判断是否有环快指针每一次走两步,慢指针一次走一步。如果链表存在环,那么快指针与慢指针一定会在环中某个位置相遇。2、若存在环,此时慢指针相遇时,fast 指针已经走完了环的 n 圈,因此它走过的总距离为 a+n(b+c)+b=a+(n+

2021-09-24 12:58:55 873

原创 移除未排序链表中的重复节点,保留最开始出现的节点

编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3]示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2]提示:链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。//思路:创建一个大于20000的数组,使用0和1标记数字是否出现过struct ListNode* removeDuplicateNodes(struct ListNode* head){

2021-09-23 21:17:28 285

原创 结构体对齐规则

结构体对齐规则:1、第一个成员在于结构体变量偏移量为0的地址处。2、其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数 = 编译器默认的一个对齐数 与 该成员大小的 较小值。3、结构体总大小为最大对齐数(每个成员变量都有自己的对齐数)的整数倍。4、针对嵌套结构体,嵌套的结构体要对齐到自己最大对齐数的整数倍处,结构体总体大小是所有对齐数的最大值(包含嵌套结构体的对齐数)的整数倍。下面,来看一个考察结构体对齐方式的面试题:1、已知结构体成员d的地址为p1,请获取成员变量b的地

2021-09-23 13:09:18 3050

原创 使用递归的方式模拟strlen函数

//************************************************************************************//////// 使用递归的方式模拟strlen函数//////************************************************************************************//int my_strlen(const char *str){ if (*str == '\0

2021-08-03 21:33:04 129

原创 在杨氏矩阵中查找是否存在指定数字,计算次数小于O(N)

//************************************************************************************//// 杨氏矩阵,从左到右依次增加,从上到下依次增加// 在矩阵中查找是否存在指定数字// 计算次数小于O(N)//************************************************************************************//// 思路:比较矩阵右上角或者左下角的值

2021-08-03 21:31:25 78

原创 判断一个字符串是否为另一个字符串旋转前的字符串

//************************************************************************************////// 判断一个字符串是否为另一个字符串旋转前的字符串//************************************************************************************////// 思路:叠加判断////对原始字符串str1进行扩展,str1 = str1 + st

2021-08-03 21:27:22 86

原创 三步逆序法 ---左旋 n 个字符串

#include<stdio.h>#include<string.h>#include<assert.h>//************************************************************************************////// 三步逆序法////左旋 n 个字符串//******************************************************************

2021-08-03 21:25:35 61

原创 模拟实现 strstr 函数

模拟实现 strstr 函数:#include<stdio.h>#include<string.h>#include<assert.h>char* my_strstr(const char* p1, const char* p2){ assert(p1); assert(p2); char* s1 = p1; char* s2 = p2; char* cur = p1; if (*p2 == '\0') { return p1; } w

2021-08-03 21:23:09 93

原创 用二分法在数组中找特定数字

//// 使用二分法查找数字 /////// 找到后返回下标,找不到返回-1#include<stdio.h>#include<string.h>int search_num(int arr[],int k,int sz){ //int sz = sizeof(arr) / sizeof(arr[0]); int left = 0; int right = sz - 1; while (left <= right) { int mid = (l

2021-07-20 20:43:40 169

原创 使用C语言,判断一个数是否为素数

使用C语言,判断一个数是否为素数// 如果一个数 m 不能被 2~根号下m 之间的整数整除,其必定为素数。#include<stdio.h>#include<string.h>int main(){int x,q;scanf_s("%d",&x);if (x > 1){for (q = 2; (q * q) <= x; q++){if (x % q == 0){break;}}if ((q * q) <= x){prin

2021-07-20 20:32:09 824 1

原创 VS2019中使用strcpy

VS2019中使用strcpy#include <stdio.h>#include <string.h>int main(){char str1[] = “Sample string”;char str2[40];char str3[40];strcpy_s(str2,40, str1);strcpy_s(str3,40, “copy successful”);printf(“str1: %s\nstr2: %s\nstr3: %s\n”, str1, str2,

2021-07-20 20:28:24 3383

空空如也

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

TA关注的人

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