- 博客(22)
- 收藏
- 关注
原创 力扣每日一题788:旋转数字
在循环内部,我们需要注意了,当一个多位数是有效的,那么其中只要有一个好数,这个多位数就是好数;一个都没有的话,那么则是非好数。先开一个大小为10的数组,通过下标来标记数字是否有效或者是好数,好数为1,无效为2,非好数为0;首先需要注意的是,在这个过程中,3,4,7是无效数字,需要判断一下。我们可以通过两个变量来判断,这个数字是否有效以及其中是否有好数。输入一个n,直接一个for循环来模拟一下。这道题直接模拟过程即可;
2022-09-25 15:13:27
158
原创 【C++】简单理解模板 函数模板 类模板
类模板的实例化必须要指定类型,也就是名字后面跟,将实例化的数据类型放在中即可,代表了一个函数家族,与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。函数模板在编译阶段,编译器会根据传入的实参来推演出相应的函数来进行使用。这是一种通过编写通用代码来让代码复用的一种手段,而。但是要面对不同类型的数据,使用起来会多有不便。隐式实例化就是如上所展示的,通过实参来推断。显示实例化是直接指定模板参数的实际类型。我们在C中经常使用的swap函数。函数模板的实例化,分为。实例化后才是真正的类。...
2022-08-31 08:40:35
168
原创 【C++】动态内存 new和delete的简单运用和理解
而new和delete与malloc和free最大的不同是,new会同时调用构造函数,delete会同时调用析构函数。我们在使用C语言时,通常使用malloc函数来开辟空间,在C++中,我们通常不这么做(当然,这么做仍旧是可以的)。我们通过debug进入到反汇编中进行观察,发现new和delete实际上也是调用了相关的函数来完成动态开辟的。比如我们想要开辟一个四字节整形数据的堆空间,就可以这样,new后边跟你的数据类型。我们可以看到,最先构造的最后析构,最后构造的,最先析构。我们对类做出调整,再次实验。..
2022-08-30 15:50:01
354
原创 138. 复制带随机指针的链表
struct Node* copyRandomList(struct Node* head) { struct Node* cur=head; //间隙插入一个复制结点 while(cur) { struct Node*copy=(struct Node*)malloc(sizeof(struct Node)); struct Node*next=cur->next; copy->val=cur->val;.
2022-05-13 18:38:36
137
原创 力扣每日一题806. 写字符串需要的行数
这是一道有关字符串的问题。观察完题干后我们意识到,widths数组中每个元素都是每个字母所占的宽度,每一行的宽度为100。处理这道题最核心的地方,在于换行如图,假如a b c宽度都为40,放了a b之后,第一行还剩余20的空间,但是放不下c了,所以直接舍弃,把c放入第二行这一点明白后,这道题就很容解答了> 我们先定义几个变量int row=1;//因为起始开始计算的时候,就最起码有一行int base=0;int temp=0;> row就是行数,base用于累加宽度.
2022-04-12 09:41:00
440
7
原创 带你清晰了解#define和宏
文章目录#define的简单使用#define的原理#define定义宏#define的替换规则#和###define的简单使用语法:#define name stuff对于#define的基本语法理解起来其实并不困难,无非就是把name替换成stuff罢了。但是,在这里,依然有一些需要我们注意的点。首先,我们长期编写程序,都已经习惯了在语句后面加上;其实,#define的后面是不需要加 ; 的。我们可以看到,#define是不需要分号的,这样,我们可以很好的编译并且通过我们的程序
2022-04-10 18:23:37
1237
3
原创 PAT 乙级1003 我要通过(已通过全部测试点)
#include<stdio.h>int main(){ int n = 0; scanf("%d", &n); int leftCount = 0; int rightCount = 0;loop: while (n--) { int len = 0; int flagP = 0; int flagT = 0; int indexP = 0; int indexT = 0; int Acount
2022-04-09 14:37:51
594
原创 leetcode面试题17.04消失的数字
int missingNumber(int* nums, int numsSize){ int judge=0; int k=0; int sum=-1; for(int i=0;i<numsSize;i++) { k=nums[i]; k=abs(k); if(k==numsSize) { judge=1; } else {
2022-03-30 23:08:22
202
9
原创 leetcode 693. 交替位二进制数
bool hasAlternatingBits(int n){ int k=0; int judge=(n%2)^1; while(n) { k=n%2; n>>=1; if(k==judge) return false; judge=k;; } return true;}
2022-03-30 22:32:24
87
原创 KMP算法实现以及next数组优化(C语言代码)
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<assert.h>//int BF(const char* s1, const char* s2)//{// int i = 0; int j = 0;// int len1 = strlen(s1);// int len2 = strlen(s2);// for (i = 0; i < len1;)// {
2022-03-25 19:43:13
1404
10
原创 一道面试题帮你深入了解指针(C语言)
代码块如下,不过直接看图片可能会更清晰一点(0V0);int main(){ char* c[] = { "ENTER","NEW","POINT","FIRST" }; char** cp[] = { c + 3,c + 2,c + 1,c }; char*** cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *-- * ++cpp + 3); printf("%s\n", *cpp[-2] + 3); printf("%s\n", .
2022-03-24 09:46:05
2193
6
原创 帮你理解回调函数,模拟实现库函数qsort(冒泡排序)
回调函数回调函数就是一个通过“函数指针”调用的函数。如果你把函数A的指针(即地址)传给一个函数B,当这个指针被用来调用其所指向的函数时,那么,这个函数A就是回调函数是不是很绕很难以理解?没关系,我们举一个小小的例子,来帮你理解回调函数。我们知道,有一个很方便的排序库函数qsort,我们在刷题的时候常常会用到,但实际上这个库函数,第四个调用的参数,便是回调函数的指针(即地址)。我们从msdn中,可以看到,qsort的具体结构void qsort( void *base, size_t num
2022-03-14 13:39:23
765
10
原创 简单帮助大家理解大小端存储
我们创建一个变量这个变量存储在内存中,那么他是如何存储的呢?show codes!int main(){ int a = 0x11223344; return 0;}0x表示相当于十六进制,后面的每两个相同的数字都占据一个字节(一个int是四个字节,用十六进制表示,那么0x11就占一个字节)。我们创建一个这样的变量,就可以通过窗口观察内存来判断变量在内存中的存储方式。我们可以看到,从低地址到高地址,分别存储44 33 22 11,这就是小端存储!把低位数据存储在低地
2022-03-06 17:23:45
719
2
原创 扫雷C语言(丐中丐版,尚有部分功能未完善)
test.c#include"game.h"void meun(){ printf("****************************\n"); printf("****************************\n"); printf("********欢迎来到扫雷********\n"); printf("*****按1进入或者按0退出*****\n"); printf("****************************\n"); printf("******
2022-01-25 13:22:59
446
1
原创 黑子说话(叹号) C语言从零带你做三子棋小游戏
三子棋小游戏学了这么久C语言,看了很长时间的黑框框,相信大家都迫不及待的要做一款小游戏来试试手了,今天呢,我来带大家手把手敲代码,开发出也许是你的第一款小游戏!准备工作我们既然要开始做这个小游戏,我们首先要明白这个小游戏的表现方式三子棋的玩法我们肯定都知道,那么如何实现是个问题,观察这个棋盘,我*们发现,在没有棋子的时候,空棋盘是由多个竖杠和横杠组成的,这样我们便可以在线条之间增添棋子!主函数我们首先是自然是从主函数开始int main(){ test();//用来测试游戏是否进入 re
2022-01-23 00:55:42
989
12
原创 打峡谷之巅有眼缘 那不如我们自己写个猜数字 C语言
各位高手在召唤师峡谷驰骋的时候总遇到眼缘怎么办?没关系!手把手教你做猜数字小游戏!摆脱眼缘困扰,找回玩小游戏时的快乐心情!猜数字,我们得首先有一个随机的数字,那我们如何生成呢?int main(){ int a=rand(); printf("%d", a); return 0;}看起来很简单是不是?但细心的老铁们就会发现问题了!虽然我这里显示的是41,也许你的和我的有所不同,但是,你会发现,无论你运行多少次代码,程序得到的结果,和之前都是一样的!Amazing!我用了一个假
2022-01-16 18:02:37
2957
12
原创 初识C语言-常量 字符串
常量种类C语言中,我们常使用的常量有以下几种:·字面常量·const常变量·#define定义的标识符常量·枚举常量代码如下#include<stdio.h>enum { //使用enum来建立枚举常量 papa,//不赋值默认从0开始,如若赋值,从此依次递增 mama, me, familynumber};int main() { 3.1415926;//普通的字面常量 const int a = 100;//定义const常量 printf("a=%d\n
2021-12-12 22:33:59
732
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人