自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 69 x的平方根

题目描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去思路一:暴力解法从一开始一个个试数,直到该数平方比x大,那么该数减一就是x的平方根舍去小数部分的那个整数。代码:int mySqrt(int x){ if(x<=0)

2020-08-17 16:22:03 269

原创 LeetCode 58 最后一个单词的长度

题目描述:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5思路:1.此题需要的变量:计数器变量count,保存最后一个单词的长度字符串长度变量len,保存字符串的长度,用于下方循环遍历字符串时的起始条件循环变量i2.何时计数?何时跳出循

2020-08-15 21:04:45 143

原创 LeetCode 53 最大子序和

题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路:1.将数组长度为0和为1的数组分别摘出,先解决这两种特殊情况。2.设置遍历数组需要的下标元素i设置sum变量保存每次加法得出的和设置temp变量保存最大和3.遍历数组元素比较当前的sum值是否大于0,若大于即可与当前走到的下标所指元素相加

2020-08-15 16:14:59 127

原创 LeetCode 1 两数之和

题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:使用两个for循环,循环嵌套遍历数组1.分别从数组的第1个元素和第2个元素依次遍历整个数组元素2.使他们两两相加并与

2020-08-09 10:18:07 110

原创 LeetCode 100 相同的树

题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。思路:使用递归;两棵树都为空,返回true;两棵树只有一颗为空,返回false;两棵树都不空,比较他们对应左右子树的值,相同返回true,不同返回false。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *

2020-08-07 15:59:02 75

原创 连续存储数组的部分算法演示

#include <stdio.h>#include <malloc.h>//包含了malloc函数#include <stdlib.h>//包含了exit函数//定义了一个数据类型,该数据类型的名字叫struct Arr,该数据类型含有3个成员,分别是pBase,len,cntstruct Arr{ int *pBase;//存储的是数组第一个元素的地址 int len;//表示数组所能容纳的最大元素的个数 int cnt;//表示当前数组有效元素的个数

2020-06-11 17:22:16 96

原创 指针小tips

#include <stdio.h>int main(void){ int *p;//p是个变量名字,int *表示该p变量只能存储int类型变量的地址 int i=10; int j; p=&i;//p保存了i的地址,p指向了i //p=10;//error p只能存放整型变量的地址,10是个整数不是地址 j=*p;//等价于j=i; printf("i=%d,j=%d,*p=%d\n",i,j,*p); //i=10,j=10,*p=10 return 0;

2020-05-25 19:00:12 96

原创 第六章 计算机的运算方法 6.1&6.2

计算机组成原理——数字计算机中数的表示计算机的运算方法运算器的设计第六章 计算机的运算方法6.1无符号数和有符号数一、无符号数没有正负号寄存器位数,反映无符号数的表示范围如8位,表示范围00000000—11111111 即0–255二、有符号数有正负号,保存两部分,符号部分和数值部分1.机器数与真值保存在计算机当中的这些数叫机器数,真值就是平时用的数据的真实的值真值...

2020-03-21 13:39:27 2235

原创 第一章 计算机系统概论

《计算机组成原理》计算机——数字电子计算机组成——计算机硬件系统的逻辑实现(数字电路、数字逻辑、门电路、触发器……)原理——数字电子计算机硬件系统一般实现的一般原理,不依托任何具体机器,是公共原理**第一章 计算机系统概论**1.1计算机系统简介现代计算机系统由那两部分组成?答:软件、硬件硬件:计算机的实体,如主机、外设等(看得见摸得着)软件:由具有各类功能的信息(程序)组成...

2020-03-17 14:55:46 437

原创 链表

链表#include "node.h"int main(int argc,char const *argv[]){ Node *head=NULL;//定义一个Node的指针,叫做head,一开始等于NULL,一开始没有任何东西 int number; do{ scanf("%d",&number); if(number!=-1...

2020-02-29 21:53:18 122

原创 可变数组

1.Resizable ArrayThink about a set of functions that provide a mechanism od resizable array of int①Growable②Get the current size③Access to the elements2.The InterfaceArray array_creat(int init_s...

2020-02-29 15:15:03 171

原创 位运算例子,位段

位运算例子1,输出一个数的二进制int main(){ int number; scanf("%d",&number); unsigned mask=1u<<31; for(;mask;mask>>=1){ printf("%d", number&mask?1:0); } printf("...

2020-02-28 22:44:17 284

原创 移位运算

移位运算1.左移<<i<<ji中所有的位向左移动j个位置,而右边填入0如:10100101 <<2 A510010100 得 94所有小于int的类型,移位以int的方式来做,结果是intx<<=1 等价于 x*=2x<<=n 等价于x*=(2的n次方)int main(){ unsigne...

2020-02-28 20:06:55 169

原创 按位运算

按位运算C有这些按位运算的运算符:&按位的与|按位的或~按位取反^按位的异或<<左移右移1.按位与&(x)i1并且(y)i1,那么(x&y)i=1否则的话(x&y)=0两个整数按位与,如果对应的位上,比如x的第i位和y的第i位都是1,的话,与的结果就是1,否则是0如:01011010 16进制的5A1000110...

2020-02-28 19:36:33 126

原创 二进制文件

二进制文件1.其实所有的文件最终都是二进制的文本文件无非是用最简单的方式可以读写的文件more、tailcatvi而二进制文件是需要专门的程序来读写的文件文本文件的输入输出是格式化,可能经过转码2.文本VS二进制Unix喜欢用文本文件来做数据存储和程序配置交互式终端的出现使得人们喜欢用文本和计算机talkUnix的shell提供了一些读写文本的小程序Windows喜欢用二进...

2020-02-28 17:51:00 1360 2

原创 文件输入输出

文件输入输出1.可用>和<做重定向2.FILEFILEfopen(const char restrict path,const char* restrict mode);int fclose(FILE* stream);fscanf(FILE*,……)fprintf(FILE*,……)打开文件的标准代码:FILE* fp=fopen(“file”,“r”);//FIL...

2020-02-28 13:49:00 78

原创 格式化输入输出

格式化输入输出1.printf%[flags][width][prec][hIL]typescanf%[flag]typeflag(标志) 含义- 左对齐+ 在前面放+或-(space) 正数留空0 0填充int main(){ printf("%9d\n",123)...

2020-02-27 18:41:30 507 2

原创 声明

1.变量的声明int i;是变量的定义extern int i;是变量的声明main.c中:#include "max.h"int main(){ int a=5; int b=6; printf("%f\n",max(a,gALL));//需要声明,在项目的某处有gALL这样一个全局变量 return 0;}max.c中:#include "m...

2020-02-27 16:52:49 155

原创 头文件

1.头文件把函数原型放到一个头文件(以.h结尾)中,在需要调用这个函数的源代码文件(.c文件)中#include这个头文件,就能让编译器在编译的时候知道函数的原型例:函数原型在max.h中,max函数在max.c中在main.c和max.c中,均要包含头文件 #include “max.h”头文件就像一个桥梁,也可以说是一个合同,它是max提供给别人的一个合同,承诺我的max长这个样...

2020-02-27 16:15:51 486

原创 多个源代码文件

1.多个.c文件main()里的代码太长了适合分成几个函数一个源代码文件太长了适合分成几个文件两个独立的源代码文件不能编译形成可执行的程序需要在集成开发环境(IDE)中新建一个项目,然后把几个源代码文件加入进去对于项目,IDE的编译会把一个项目中所有的源代码文件都编译后,链接起来有的IDE有分开的编译和构建两个按钮,前者是对单个源代码文件编译,后者是对整个项目做链接编译单元:一个....

2020-02-27 13:56:03 382

原创 带参数的宏

1.带参数的宏像函数的宏#define cube(x) ((x)(x)(x))宏可以带参数#define cube(x) ((x)*(x)*(x))int main(){ printf("%d\n",cube(5));//125 return 0;}#define cube(x) ((x)*(x)*(x))int main(){ int i; ...

2020-02-27 13:52:51 418

原创 编译预处理指令

1.编译预处理指令#开头的是编译预处理指令它们不是C语言的成分,但是C语言程序离不开它们#define用来定义一个宏#define PI 3.14159//定义一个符号,这样定义出来的符号叫做一个宏,PI是这个宏的名字,而3,14159是这个宏的值//C语言在编译之前先做预处理,在预处理时,把所有的PI都替换成3.14159int main(){ printf("%f\n",...

2020-02-27 12:32:06 5265

原创 全局变量

1.全局变量定义在函数外面的变量是全局变量全局变量具有全局的生存期和作用域它们与任何函数都无关在任何函数内部都可以使用它们,它的作用域是大于所有的函数的int f(void);int gALL=12;//全局变量int main(int argc,char const *argv[]){ printf("in %s gALL=%d\n",_func_,gALL);//_fu...

2020-02-27 11:08:31 2416

原创 typedef、union

1.自定义数据类型(typedef)C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字,比如:typedef int Length;使得Length成为int类型的别名这样,Length这个名字就可以代替int出现在变量定义和参数声明的地方了:Length a,b,len;Length numbers[10];2.Typedef声明新的类型的名字新的名字是某...

2020-02-27 11:04:44 8106 4

原创 结构数组

1.结构数组struct time{ int hour; int minutes; int seconds;};struct time timeUpdate(struct time now);int main(void){ struct time testTimes[5]={ {11,59,59},{12,0,0},{1,29,59},{23,59...

2020-02-27 11:01:21 400 1

原创 结构指针

1.结构作为函数参数int numberOfDays(struct date d)整个结构可以作为参数的值传入函数这时候是在函数内新建一个结构变量,并复制调用这个结构的值也可以返回一个结构这与数组完全不同struct date{ int month; int day; int year;};bool isLeap(struct date d);//判断这一...

2020-02-27 10:56:54 147

原创 结构

1.声明结构类型int main(int argc,char const *argv[]){ struct date{//声明了一个结构类型 叫date,{}里面是这个结构的成员,也就是说将来的每一个date结构里,都会有以下三个成员 int month; int day; int year; };//初学者最常见的错误:漏了这个...

2020-02-27 10:53:01 107 1

原创 枚举

1.常量符号化用符号而不是具体的数字来表示程序中的数字提升可读性2.枚举用枚举而不是定义独立的const int变量枚举是一种用户定义的数据类型,它用关键字enum以如下语法来声明;enum 枚举类型名字{名字0,……,名字n};枚举类型名字通常并不真的使用,要的是在大括号里的名字,因为他们就是常量符号,它们的类型是int,值则依次从0到n,如:enum colors{red,ye...

2020-02-26 12:45:42 113

原创 字符串函数

字符串函数string.h:常用如下函数:strlenstrcmpstrcpystrcatstrchrstrstr使用字符串函数,需要#include <string.h>1.strlensize_t strlen(const char *s);返回s的字符串长度(不包括结尾的0),const是保证不会修改你的字符串int main(int argc,char...

2020-02-26 12:43:32 258

原创 putchar、getchar

1.putchar:int putchar(int c);向标准输出写一个字符返回写了几个字符,EOF(-1)表示写失败 end if file文件结束,是C定义的一个宏,每个宏都会有一个值,这个值是-12.getchar:int getchar(void);从标准输入读入一个字符返回类型是int是为了返回EOF(-1)Windows–>Ctrl-ZUnix–>Ct...

2020-02-26 12:35:12 94

原创 字符串数组

1.字符串数组char **aa是一个指针,这个指针指向另一个指针,那个指针指向一个字符(串),因此它不是我们要的字符串数组char a[][]a是一个二维数组的变量,,在二维数组定义当中,第二维一定是要有确切的大小,否则编译不会通过如:int main(){ char a[][]={ "Hello" };//|error: array type ha...

2020-02-26 12:33:25 120

原创 字符串输入输出

字符串输入输出1.字符串赋值?char* t=“tide”;char*s;s=t;并没有产生新的字符串,只是让指针s指向了t所指的字符串,对s的任何操作就是对t做的2.字符串输入输出char string[8];scanf("%s",string);printf("%s",string);scanf读入一个单词(到空格、tab或回车为止)int main(){ ch...

2020-02-26 12:30:47 743

原创 修改字符串

1.字符串变量char* s=“Hello world!”;int main(){ char* s="Hello world!"; s[0]='B'; printf("Here is=%c\n",s[0]);//编译没错,但是程序不会输出 return 0;}2.不知道为什么不输出,因此尝试以下代码:int main(){ int i=0;...

2020-02-26 12:28:14 321

原创 字符串变量

1.字符数组:char word[]={‘H’,‘e’,‘l’,‘l’,‘o’,’!’};这不是C语言的字符串,因为不能用字符串的方式做运算2.字符串char word[]={‘H’,‘e’,‘l’,‘l’,‘o’,’!’,’\0’};共7个单元,最后那个单元里放的是0,这个0就使得现在的这个word是一个字符串3.C中字符串对于C预言来说,字符串是以0(整数0)结尾的一串字符0或...

2020-02-26 12:25:28 837

原创 动态分配内存

动态分配内存1.输入数据如果输入数据时,先告诉你个数,然后再输入,要记录每个数据C99可以用变量做数组定义的大小,C99之前呢?使用动态内存分配:int a=(int)malloc(n*sizeof(int));用malloc需要#include <stdlib.h>int main(void){ int number; int* a; int ...

2020-02-25 11:51:34 94

原创 指针细节

1.1+1=2?int main(){ char ac[]={0,1,2,3,4,5,6,7,8,9}; char *p=ac; printf("p=%p\n",p);//p=0060FEFE printf("p+1=%p\n",p+1);//p+1=0060FEFF sizeof(char)=1 int ai[]={0,1,2,3,4,5,6,7,...

2020-02-25 11:49:02 100

原创 指针与const

1.指针与const指针可以是const,指针所指的那个变量也可以是const指针是const:表示一旦得到了某个变量的地址,不能再指向其他变量int* const q=&i这种情况,指针q是const,意思是说q的值不能被改变,q的值就是i的地址,q指向了i这个事实不能被改变,也就是q不能再指向别人了,它们之间的关系是永久的、在这之后通过q做一些访问如:*q=26,可以,...

2020-02-25 11:45:57 181

原创 指针和数组

如果传一个普通变量,那么参数接收到的是值如果传一个指针,那么参数接收到的也是值,只不过这个值是地址1.传入函数的数组成了什么?函数参数表中的数组实际上是指针sizeof(a)==sizeof(int*)但是可以用数组的运算符[]进行计算void minmax(int a[],int len,int *max,int *min);int main(void){ int a[...

2020-02-25 11:44:53 106

原创 指针应用场景

1.指针的应用场景一交换两个变量的值int swap(int *pa,int *pb){int t=*pa;*pa=*pb;*pb=t;}代码:void swap(int *pa,int *pb);int main(){ int a=5; int b=6; swap(&a,&b); printf("a=%d,b=%d\n",a,...

2020-02-25 11:42:39 810

原创 指针

1.指针就是保存地址的变量int ;int* p=&i;在这里表示p是一个指针,它指向的是一个int,现在将i的地址交给pp里的值是i这个变量的地址,因此说p指向了iint p,q;int p,q;可以靠近int,也可以远离int,靠近变量这两句意思相同,都表示p是一个指针变量,指向int,而q只是一个普通的int类型的变量因此也得出,并不是把加给了int,而是把加给了...

2020-02-25 11:39:02 86

空空如也

空空如也

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

TA关注的人

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