自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pyecharts

pyecharts

2023-04-13 22:36:38 790 1

原创 双指针练习

力扣11. 盛最多水的容器双指针法在左右端点处分别设置一个指针,由于计算的是最大的面积,而面积的公式为 1/2wideheight,双指针法有点类似于指针,只要之战移动一次,就代表排除了一根柱子,接下来的搜索只需要在剩下来等等柱子中进行即可。容器的最大水量是由最短的那个柱子决定的,当左边柱子长小于右边柱子长时,容器的最大盛水量将由左边柱子的长度决定,此时如果将右边界往里,那么容器的水量只可能变小或者不变,不可能会变大(因为被左边的柱子限制了),但如果将左边界往里进,就有可能改变容器的最小边长(如果往

2022-03-16 14:53:08 115

原创 3.7两两交换链表,回文判断,sine之舞(递归),回形取数(dfs),危险系数(dfs),单词搜索(dfs),岛屿数量(dfs,bfs),被围绕的区域(dfs,bfs))

力扣24 两两交换链表中的值第一步,发现头结点需要改变 先创建一个虚拟头结点,称为X 在真实头结点A 之前,A的下一个节点称为B节点对于虚拟头结点来说,第一轮需要交换的是 这个虚拟头结点的后节点一届后后节点,即需要交换A 和 B第二步,先将当前节点的next指向后后节点 (将X的next指向B)第三步,将后节点的next指向后后节点的next(将A的next 指向 B的next)第四步,将后后节点的next指向后节点(将B 的next指向A)第一轮交换完毕,想要进行下一轮交换就需要改变虚拟头结点

2022-03-08 20:43:34 238

原创 蓝桥杯 1431分糖果

#include<iostream>#include<algorithm>using namespace std;int N;bool Equal(int a[]){//判断每个小朋友的糖果数是否相等 int flag = true; for(int i = 1; i < N; i++){ if(a[i] != a[i - 1]){ flag = false; } } return flag;}int main(){ cin >>

2022-02-21 16:22:31 385

原创 蓝桥杯 1097蛇形矩阵

题目蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。输入本题有多组数据,每组数据由一个正整数N组成。(N不大于100)输出对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211#include<iostream>#include<string>using namespace std;int m

2022-02-07 00:20:20 428

原创 大整数运算及组合数

A + B#include<iostream>#include<cstring>using namespace std;struct bign{ int d[1000]; int len; bign(){ memset(d, 0, sizeof(d)); len = 0; }};bign change(char str[]){ bign a; a.len = strlen(str); for(int i = 0; i < a.len; i++)

2022-01-27 23:41:17 549

原创 PAT A1059 Prime Factors 质因数

#include <iostream>using namespace std;#include <cmath>const int maxn = 1000010;struct factor{ int m = 0,cnt = 0;}; factor p[maxn];int main(){ int k = 2;//第一个素数 int x; int e = 1;//用于计算累积乘的结果,来控制*号的输出 cin >> x; int t = x;//

2022-01-27 13:41:21 352

原创 分数的表示

#include <iostream>#include <cmath>using namespace std;int g(int a, int b){//求最大公约数 int t; if(a < b){ t = b; b = a; a = t; } return !b ? a : g(b, a%b);//如果 b == 0返回a,否则返回g(b, a%b); }struct Fraction{//定义分数的结构体 int up, down;

2022-01-26 10:47:54 509

原创 KMP算法

记录KMP算法方便使用#include<iostreeam>using namespace std;void Getnext(char *parttern, int *next){ next[0] = -1;//如果模式串的第一位就匹配失败,跳到-1 for(int i = 1, j = -1; parttern[i]; ++i)//j指向的是模式串最长后缀的最后那个元素,模式串的第i位和第j+1位比较,如果成功i跳到j+1位置,失败j往前跳到更小的最长前缀的最后一位 { wh

2022-01-24 14:54:35 228

原创 字符串匹配——暴力破解法

暴力匹配字符串

2022-01-24 09:28:20 323

原创 PAT B 1011 A+B 和 C

A+B 和 C给定区间 [−231, 231] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。输入格式:输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。输入样例:41 2 32 3 42147483647

2022-01-23 23:10:25 148

原创 PAT B 1010 一元多项式求导

设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 0思路一一开始想到用数组存放输入的数据,数组的奇数下标位置都是系数,采用一个步长为2的循环对这个数组的一个系数操作,

2022-01-23 18:40:03 347

原创 2021-09-04 文件操作

文件操作在程序运行时产生的数据属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化对文件操作需要包含头文件文件的类型1、文本文件,文件以文本的ASCLL码形式存储在计算机中2、二进制文件,文件以文本的二进制文件形式存储在计算机操作文件的三大类1、ofstream:写操作2、ifstream:读操作3、fstream:读写操作写文件//1、包含头文件#include<fstream>//2、创建对象流ofstream ofs;//3、打开文件ofs.o

2021-09-05 13:14:24 69

原创 2021.8.29类和对象<2>运算符重载 继承 析构

友元是原类的好基友,可以访问原类的私密空间(private),而其他只能访问公共场所(public)关键字:friend全局函数做友元class Building { friend void goodGay(Building & building);//goodGay全局函数是Building的好朋友,可以访问Building中的私有成员public: Building() { m_sittingRoom = "客厅"; m_bedRoom = "卧室"; } stri

2021-09-03 15:46:49 118

原创 2021-08-22 类和对象<1>

类和对象类的属性和行为 -> 成员属性 -> 成员属性 成员变量行为-> 成员函数 成员方法设计一个圆类,求圆的周长const double PI = 3.14;class circle{public: int r; double calculate(){ return 2*PI*r; }private:}int main(){ circle cl; cl.r = 10; cout << cl.calaulate() << end

2021-08-29 14:15:19 83

原创 2021-08-22 函数的高级应用

函数提高函数的默认参数:函数的形参列表中的形参是可以有默认值的语法:返回值类型 函数名 (类型 参数 = 默认值)int func(int a, int b, int c){//一个参数都不能少传 return a + b + c;}int func(int a, int b = 20, int c = 30){//如果我们有参数传入就用这个参数计算,不传参数就调用默认值计算 return a + b + c;}注意1如果某个位置已经有了默认参数,那么从这个位置往后都必须有默认值fu

2021-08-22 10:09:53 47

原创 2021-8-21 引用

引用给一个变量起别名语法: 数据类型 &别名 = 原名修改别名和原名都是修改同一块内存中的数据。注意事项引用必须要初始化不能写 直接写 int &a;引用一旦初始化,就不可以更改了引用做函数参数作用 : 函数传参时,可以利用引用的技术让形参修饰实参//交换函数//值传递void change(int a, int b){int temp = a;a = b;b = temp;//地址传递void change2(int *a, int *b){//用指针来接

2021-08-21 21:51:15 52

原创 2021-08-21 内存分区原理

代码区存放函数体的二进制代码,由操作系统管理存放CPU执行的机器指令代码区是共享的,目的是对于频繁被执行的程序,只需要在内存中有一份代码就行代码区是只读的。防止程序意外修改指令全局区存放全局变量和静态变量以及常量全局变量和静态变量存放于此全局区还包含了常量区,字符串常量和其他常量该区域的数据在程序结束后由操作系统释放写在函数体中的变量就是局部变量,不在函数体中的变量就是全局变量int g_a = 10;//全局变量 -> 在全局区int main(){ int a = 10;

2021-08-21 20:33:31 114

原创 模板及例题

函数模板如果有两个函数的参数个数和功能一样,只有类型不同,就可以不用复制粘贴,而用函数模板取代template<模板参数列表>类型名 函数名(参数表){ //函数定义}模板参数列表:class 或者 typename 标识符例template<typename T>T sort(T x){ return ...

2021-08-10 20:29:55 80

原创 动态内存分配,const,自动推导类型,lambda,main,常量指针和指针常量

定义一个可以保存数组,并且支持多种类型的array,这里需要用到我们之前学过的关于类的定义、类模板和动态内存分配的相关知识。我们定义的array需要支持以下功能:构造的时候,给予一个整数参数n,确定对象的容量(即内部要开多大的数组)通过insert成员函数在数组内的末尾插入一个元素,如果容量已经满了则输出array full通过showAll成员函数,输出所有元素,每个占一行输出格式:yangzhou30119260817array full#include

2021-08-10 20:25:13 123

原创 指针及其运算关系

宏定义宏定义结束后没有分号。宏定义会在编译前被预处理,所以它的替换过程并不会占用程序运行时的时间。cpp#define PI 3.14#define EPSILON 1e-6#define MAX(x, y) a>b?a:b每当程序中出现MAX(x, y), 就会被 a>b?a:b 替换 指针int arr[3] = {1, 2, 3};int *p;p = &a[0];p 保存的是arr第一个元素的地址,也就是a[0]的地址,我们可以通过对地址进行±1的操作

2021-08-07 08:15:11 1231

原创 折半查找题

折半查找题给定 NN 个整数和 KK 个待查找的整数 ,如果待查找的整数在给定的 NN 个整数中,请输出待查找的整数是数组中第几个元素(从 1 开始计算,第一个元素计 1 而不是 0);如果待查找的整数不在给定的 NN 个整数中,则输出 0。测评机可能会反复运行程序,每次程序运行后,测评机输入包括三行。第一行输入两个整数 NN(1 \leq N\leq 10^61≤N≤10 6 )和 KK(1 \leq M\leq 10^61≤M≤10 6 ),分别表示给定的整数总个数和待查找的数的个数;第二行从小到大

2021-08-05 13:53:53 208

原创 C中继承的字符串库以及字符串数组vector容器

从C语言中继承的库以及函数scanf :int a; scanf ("%d", &a);这里的 "%d"是占位符, 函数从标输入读取字符串。 按照 int 类型进行解析, 处理之后保存在 a 变量中, 必须提供a 的地址才能保存成功对于其他的数据类型,有不同的占位符:有符号整数 (int):%d 或 %i字符型 (char) :%c字符串(string) :%s无符号性整数 (undesign):%u浮点数(double):%f科学技术法 : %e内存地址 : %p对于字符串

2021-08-01 23:33:13 518 1

原创 输出螺旋矩阵解析,回形取数

输出螺旋矩阵给定一个 mm 行、nn 列的矩阵,请按照顺时针螺旋的顺序输出矩阵中所有的元素输入格式测评机会反复运行你写的程序。每次程序运行时,首先在第一行输入 22 个整数,分别对应题目描述中的 mm 和 nn(1 \leq m,n \leq 1001≤m,n≤100),之间用一个空格分隔。接下来输入 mm 行,每行包含 nn 个整数(-10000 \leq a, b, c \leq 10000−10000≤a,b,c≤10000),每两个整数之间用一个空格分隔。输出格式输出为一行,包括 m\ti

2021-07-16 16:15:49 205

原创 2021-04-27 构造函数和析构函数

初始化列表作用: 给构造函数中的变量附上初始值。构造函数名(构造函数中的参数列表):成员变量(常量或参数)[构造函数的函数体。}可以在对象构造的时候,直接就用初始值初始化成员变量。如:clock(int newS,int newM,int newH): minute(newM), second(newS), hour(newH){ //这个必须写在类的声明中,如果还需要构造函数干别的事,可以继续写}内嵌对象必须由初始化列表完成对象的初始化析构函数也是类的一个公有函数成员他的名称是在

2021-04-30 10:28:45 64

原创 构造函数及复制构造函数

构造函数是为了让我们自己去规定 , 我们定义对象的初始化。#include <iostream>using std::cin;using std::cout;using std::endl;class Clock{ public: void setTime(int newS = 0, int newM = 0, int newH = 0){ second = newS; minute = newM;

2021-04-26 20:27:50 2514 1

原创 汉诺塔 通俗易懂讲解

汉诺塔问题详解:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着 6464 片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘,如图所示:现在请试着编写一个程序,对于一个有 nn 个盘子的汉诺塔,列举将这 nn 个盘子从柱子 A 移动到柱子 C 需要的所有移动步骤,每个步骤占一行。例如,将一个盘子从 A 移动到 C,即表示

2021-04-21 23:40:19 2287

空空如也

空空如也

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

TA关注的人

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