自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于vector的一点新发现

其中的const,&,都有什么用总结,auto 加了&才能修改原来v中的数,加了const以后不能修改,会直接报错,如果const也不加,&也不加,不能修改而且不会报错。

2024-04-20 17:37:07 218

原创 算法-计算机基础知识

在精简一下,如果a=01001,b=11101,那a`=01111,b`=10000,c=00000ans就是0。也就是说只要最高位不同ans一定为0,再推广,从高位往地位看,只要高位不全是1,直接为0。a` & b`,得到c`,此时那c去和[a,b]所有数&结果全是c。注意,位运算的优先级比加减乘除低,所以加括号。1,坐标系与数学不同,x轴向下,y轴向右。在[a,b] 取a` b`

2024-02-25 19:49:49 1670 1

原创 算法-16-并查集

并查集:一开始,把a,b,c放入并查集,a自己一个集合,b自己一个,c自己一个提供的方法 1.boolean isSameSet(a,b),判断ab是否在同一个集合2.void union(a,b),把a所在集合的全部,和b所在集合的全部,两个大集合合并怎么实现的方法一对于每个元素,都有一个指针指向自己查询a,b是否在同一个集合,对于a,a往上到不能再往上的节点就是他的代表节点,也就是ab同理,代表节点不同,所以ab所在的集合不同。

2024-02-14 22:26:52 567

原创 算法-3-基本的数据结构

前提,子问题规模一致,(比如,子问题是分两个二分之N区间分别求最大值,可以Master,若分为三分之N那就不行)1.pop,push,getMin,操作的时间复杂度都是O(1)公式:T(N)=a*T(N/b)+O(N的d次方)2.设计的栈类型可以使用现成的栈结构。是n就跳过,不是n next指向。

2024-02-12 07:48:53 652

原创 算法-4-归并排序

当i在L处,R来到M+1处,R走不动,停,i往右走到3处,R能走走三个来到4位置,那一共几个数?总思路不变左面求+右边求+总merge。R=M+1,R是开区间取不到,

2024-02-12 07:43:42 401

原创 算法-2-异或运算

假设a,b这两个数出现了奇数次,拿eor^整个数组,得到eor=a^b,而a!=0,说明eor某一位必然有1,不妨取最右边的1,然后根据这个1对原数组进行分类,一类这一位上有1,另一类没有,假设a这一位上有1,b没有,定义eor·异或上a所在的那一类,那一类只有a出现了奇数次所以eor·=a,然后eor·在异或eor得到b。arr[i]=i^j;一个数组中有一种数出现了k次,其他数字都出现了m次,m>1,k<m,找到出现了k次的数。数组中1种数出现了奇数次,其他的数都出现了偶数次,返回出现了奇数次的数。

2024-02-05 23:24:39 387

原创 算法.1-三大排序算法-对数器-二分

Java版C++

2024-02-05 21:32:11 758

原创 C++STL之容器

vector容器:单端动态数组容器push_back尾部插入元素、pop_back尾部删除元素front()头元素、back()尾元素begin()得到的是 容器的 起始迭代器(首元素的位置)end() 得到的是 结束迭代器(尾元素的下一个元素位置)必须包含头文件:#include<vector>5 {1213 //遍历容器14 //定义一个迭代器iterator 保存是元素的位置16 for(;it!=v1.end();

2024-02-04 21:22:46 614

原创 常见の算法5

一个int类型32字节,可以表示0-31这32个数出没出现过,出现过1没出现0,再扩大一点搞个数组,就可以表示0-1023出没出现过,一个long类型可储存64位。2.x右移i位,i=30.29...5,x<y说明第i位上要放0,x>>4,x>=y停,第四位 置1,然后当前的x-y即x-y<<4。-15+1=-14,-14/3=-4,然后(-15)-(-4*3)计算差值得-3,然后-3/3得到-1把他和-4相加。那a-b=add(a,add(~b+1)),a+(-b)2,^异或运算等价于二进制无进位相加。

2024-01-27 23:51:55 322

原创 常见の算法链表问题

【代码】常见の算法链表问题。

2024-01-26 21:49:50 364

原创 常见の算法

前言本文主要使用Java什么,是快乐星球@#¥@%……什么是算法?算法是一组完成任务的指令。任何代码片段都可视为算法,但我们主要介绍常见算法一、引入——二分查找二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回 null。一个简单的例子,你想一个1-100之间的数,我去猜,我猜50,你说大了或者小了,如果大了我再猜25…………不管你心里想的是哪个数字,我在7次之内都能猜到,而一个数一个数的枚举我可能要猜100次。

2024-01-24 23:57:32 1946

原创 排序&二分

A<10,A=0-9,而 len(A)<10A的位数<10,A=0-9999999。

2024-01-24 23:13:11 417

原创 重生之C++王者归来DAY1

引用的本质:就是给变量名取个别名。引用定义的步骤:1 &别名2 给哪个变量取别名 就定义该变量3 从上往下整体替换案例1:给普通变量取别名案例2:给数组取别名2 {57 int i=0;8 for(i=0;i<n;i++)9 {11 }13 }案例3:给指针变量取别名案例4:给函数取别名。

2024-01-24 22:24:50 1933

原创 STL简介

1,什么是STL——Standard TemplateLibrary,标准模板库2.STL提供了六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器容器:各种数据结构算法:各种常用的算法(冒泡,排序)迭代器:扮演了容器与算法之间的胶合剂(类似于指针等)仿函数:行为类似函数,可作为算法的某种策略适配器:一种用来修饰容器或者仿函数或迭代器接口的东西空间配置器:负责空间的配置与管理。

2024-01-22 20:48:14 369

原创 初识C++

c++语言在c语言的基础上添加了面向对象编程和泛型编程的支持。

2024-01-22 20:45:57 393

原创 C语言链表

3,遍历链表,第一步先判断链表是否存在,第二部,STU *pb=head,while(pb!1,引入,数组的分类,静态数组(int arr[20]容易空间溢出或者浪费),动态数组(malloc合理利用空间但是不能快捷的插入或者删除数据,会涉及到大量的数据移动)思路,先main中写出程序框架,先调出帮助菜单,接受指令,判断指令调用相应函数,有help,insert,print,search,delete,free,quit。3,将temp的值赋给*pi,并注意pi.next=NULL。

2024-01-22 19:22:09 928

原创 C语言结构体

一、结构体概述1 //struct 是结构体关键字 stu是结构体类型名2 //使用结构体类型 必须是 struct stu3 //num name age 叫做结构体中的成员4 //定义结构体类型的时候 不要给成员 赋值(重要)5 //定义结构体类型的时候 并没有分配空间 所以 不能给成员赋值二、定义一个结构体类型//4B//32B10 int age;//4B11 };//一定要记得有;号12 //结构体中的成员 拥有独立的空间(重要)三、用类型定义变量。

2024-01-20 19:17:40 964

原创 冒泡排序.

【代码】冒泡排序.

2024-01-05 10:59:55 363

原创 C语言期末复习

注意: 1、数组名 arr 不能和其他变量名 同名 2、数组的元素小标是从0开始:0~9 3、数组的元素 分别是:arr[0]、arr[1]~arr[9], 如果访问arr[10]数组越界。1,指针就是地址,每个字节都有对应的地址,指针变量本质就是个变量存放的是地址编号,任何地址编号都是四个字节,也就是sizeof(int * char* double ***)都是四个字节。1,定义, *p int func (int a , int b)替换得到,int (*p)(int a,int b)

2024-01-05 10:06:30 407

原创 指针试题1

7,见到int s[4][5]={0} int (*p)[5]=NULL, s和p完全等价。C,p[0][2]就是s[0][2] D,*(p+1)+3就是第一行第三列的列地址。A,p+1就是第一行的行地址 B*(p+3)就是第三行第零列的列地址。4,从后往前看,*p[3]=a[9]=10 D。2,看题目,说对数组元素的引用,不能是对数组元素地址的引用。D不行,D是先++,第一次进入时,i=1,缺少了i=0。6,指向同一数组的两个指针作差A。

2023-12-22 17:37:27 385

原创 定义动态数组,求一维二维数组最大值及其下标

for循环,拿m去和arr[i]作比较,把大的赋值给m,不要拿arr[0]去比较,为了保持原数组不变。相当于m是arr[0]的备份,同时,比较完之后(for循环结束前,令n=i,保存一下最大值的下标)思路,定义一个已知数组,定义最大值m=arr[0], 定义最大值的下标n。定义动态数组,这个数组有多少元素,各元素值为多少由用户决定。待解决问题,怎么搞一个动态二维数组?求二维数组最大值,及其下标。求一维数组最大值及其下标。

2023-12-22 11:18:42 368

原创 C语言指针铅封

1,指针就是地址,每个字节都有对应的地址,指针变量本质就是个变量存放的是地址编号,任何地址编号都是四个字节,也就是sizeof(int * char* double ***)都是四个字节。如果p是=&arr[0]也就是p=arr,只要*(p+3),但是p=&arr故同时解引用,*p=arr。*(arr+1)第一行第零列元素地址,*(arr+1)+2,在对他解引用,*(*(arr+1)+2)&arr[0]+2 化简==&*(arr+0)+2==arr+2第二行的行地址。

2023-12-22 10:48:06 947

原创 c语言错题总结

a++ : b++ ,则下列表达式完全等价于表达式(exp)的是,(exp!=0),代数,exp=0,exp=1。}//////分析,调用函数时,会复制参数的一个副本,函数内部是用这个副本运算,因此(a,b地址的副本交换了,地址指向的值没变)6,int arr[n]则数组最后一个元素是arr[n-1],不能对arr[n] 进行操作。9,字符数组不能赋值,char s[10],*p=s;5,二维数组,可以没有列但不能没有行,可以int arr[][5];1,C语言程序的基本单位是,函数。

2023-12-15 11:29:08 59

原创 C语言错题——期末

a[0]也是数组名,该数组包含四个元素a[0][0]...故a[0]=&a[0][0]=a。//首元素地址+0还是首元素地址,是地址在32位平台就4个字节,64位平台就8个字节。2.&数组名——数组名表示整个数组的地址,&a+1就是跳过整个数组后的地址。// 4 数组名不是单独放在sizeof里面,所以数组名表示首元素地址,我们知道 数组名表示首元素地址 但有两种情况是例外的。1. sizeof(数组名)——数组名表示整个数组。6,二维数组等式,a=&a[0]=&a[0][0]

2023-12-08 11:11:19 33

原创 复习12.4

1,C++头文件,#incllude<iostream>,#include<Windows.h>(systemp(pause))再写int main(),这样输出直接打cout>>,输出打cin>>5,字符串,先引用头文件#Include<string>,然后直接string name;2,初始化图形界面 ,initgrahp(640,480);6,求字符串长度,cout<<name.size();5,读取一行getline(cin,name);3,加载图片,loadimage(0,(xx.jpg));

2023-12-04 20:05:24 29

原创 看星星星星

【代码】看星星星星。

2023-12-03 21:00:29 94 1

原创 推箱子,人物移动代码优化,最终版本

【代码】推箱子,人物移动代码优化,最终版本。

2023-12-03 14:05:45 90 1

原创 12.2推箱子项目

【代码】12.2推箱子项目。

2023-12-02 23:16:45 23

原创 12.2C++

只有当输入缓冲区为空的时候,程序才停下来等待输入,用户敲键盘之后必须按Enter键才能放到输入缓冲区,然后cin再去读取。1,float 精度为七位有效数字,指第一位非零数字开始,往后数7位都是精确的,第八位是四舍五入的约数。实际存储为:0 10000010 101101 000000一位符号位,八位阶码,尾数后面补0。0.625 * 2 = 1.25 取整 1 ,剩下0.25。0.25 * 2 = 0.5 取整 0 , 剩下0.5。0.5 * 2 = 1 取整 1 ,剩下0。

2023-12-02 23:16:05 29

原创 12.1C++

include<Windows.h>//对应system("Pause");1,#include<iostrea>//输入输出流,没有.h。前提,设置好easyx,使用VIsual c++2010。3,输出 std::cout<<"xxxxx";黑客攻击程序,图形界面制作,效果图。

2023-12-01 17:43:46 45 1

原创 11.30复习100

6,输出数组最大的五个数字,冒泡排序,排成升序(if(arr[j]>arr[j+1])),此时如何输出最后五个数字呢,for(i=n-1;反之如果排成降序(if(arr[j]<arr[j+1])),for(i=1;//%02d,代表左侧数字不够2时,拿0补。2,如何用for实现打印n行,每一行先打印1,2,,,,n个空格,在打印n,,,,1个数字1。4,输入n,输出2的n次方。

2023-11-30 20:13:12 28

原创 11.29

【代码】11.29。

2023-11-29 20:55:03 173 1

原创 11.28

1,能被4整除,并且不能被100整除;跳过了结构体后半,跳过文件,直接开链表。2呢能被四百整除的是闰年。

2023-11-28 20:58:13 45 1

原创 100题11.27

多组输入,每行输入一个字符。1,判断是元音还是辅音。

2023-11-27 20:53:29 31

原创 学习日志11.27

1,第一种,sizeof(arr)计算的整个数组的大小;第二种,对数组名取地址,步长是整个数组长度,&arr,&arr+1。4,二维数组,int parr[3][3]=int (*parr)[3];总结,数组指针语法,数组元素类型 (* 数组指针变量名称) [元素个数]3,数组指针,int *p=&arr //报错,左右指针步长不一样。改为,int(*p)[5]=&arr;例子二,对指针数组(是数组,里面放的全是指针)选择排序,例子1,对数组进行选择排序。终于到数组了,虽然编排得很乱。

2023-11-27 20:19:33 38

原创 如何实现两个数字交换

【代码】如何实现两个数字交换。

2023-11-27 16:03:09 26

原创 2023.11.27

输入一个四位数,并把它反向输出。

2023-11-27 13:32:27 36

原创 11.26多组输入问题

故多组输入只要写成while(scanf()!=EOF)即可,而对-1按位取反恰好是这个意思。~是按位取反,scanf()返回值是输入的数字,返回值为EOF(-1)代表输入截止/错误,3,getchar,读取一个字符注意用完之后再来一个getchar 清空输入缓冲区()2,读取一行,gets的用法。多组输入,遇到字符零终止。1,如何实现多组输入。

2023-11-26 21:01:28 106 1

原创 2023.11.26小结—冒泡排序

2,冒泡排序方法,对N个数字,进行N-1趟,故外层for(int i=0;内层是每一趟比多少次,越来越少,for(int j=0;1,要输入n个数字,往数组里放,用for循环,scanf("%d",对arr[i]取地址。

2023-11-26 20:29:37 36 1

原创 11.26

发烧了,早上九点acm招新,就会做一道题,emo了,中午妈妈打了个电话,好久没听到他的声音了,下午鼓捣Gitee,push的时候老是错误,放弃了,又听黑马,听不懂,听极客算法,不会,崩溃,傍晚,acm发邮件,过了,突然有了坚持下去的动力。

2023-11-26 19:36:55 37 1

空空如也

空空如也

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

TA关注的人

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