自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速排序模板

void quick_sort(int p[],int l,int r){ if(l>=r) return; int x=p[l],i=l-1,j=r+1; //取左边界-1,右边界+1 来满足进入while循环后的i++,j-- while(i<j){ do i++; while(p[i]<x); do j--; while(p[j]>x); if(i<j)swap(p[i],p[j]); } //第一种选i为分割 因为当退出while(i&lt

2022-04-15 16:21:27 246

原创 671. 二叉树中第二小的节点 DFS 、 BFS 、 SET集合

链接:671. 二叉树中第二小的节点给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。更正式地说,root.val = min(root.left.val, root.right.val) 总成立。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例 1:输入:root = [2,2,5,null,null,5,7]输出:5解释:最小的

2021-04-07 09:56:53 143

原创 L2-4 彩虹瓶 (25 分) C++

彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆上去。当一种颜色装填完以后,先看看货架顶端的一箱是不是下一个要装填的颜色,如果是就取下来装填,否则去工厂里再搬一

2021-04-04 15:35:38 360

原创 1050 螺旋矩阵 (25分) PAT (Basic Level) Practice 边界

在二维数组外面增加一个边界对于向右的数组,边界就是left_border——right_border对于向下的数组,边界就是up_border——down_border对于向左的数组,边界就是right_border——left_border对于向上的数组,边界就是down_border——up_border每向右移动,以up_border+1为行,列为left_border+1——right_border-1,遍历完后,将up_border++;每向下移动,以right_border-1为.

2020-08-24 18:38:20 145

原创 1049 数列的片段和 (20分) PAT (Basic Level) Practice

1049 数列的片段和 (20分)给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这 10 个片段。给定正整数数列,求出全部片段包含的所有的数之和。如本例中 10 个片段总和是 0.1 + 0.3 +

2020-08-24 17:38:54 149

原创 1048 数字加密 (20分) PAT (Basic Level) Practice

1048 数字加密 (20分)本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结果。输入样例:

2020-08-24 17:11:48 120

原创 1047 编程团体赛 (20分) PAT (Basic Level) Practice

1047 编程团体赛 (20分)编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军队。输入格式:输入第一行给出一个正整数 N(≤10^​4​ ),即所有参赛队员总数。随后 N 行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的正整数,队员编号为 1 到 10 的正整数,成绩为 0 到 100 的整数。输出格式:在一行中输出冠军队的编号和总成

2020-08-24 17:07:06 112

原创 PAT (Basic Level) Practice 1033 旧键盘打字

#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ string bad,s; bool flag; getline(cin,bad); cin >> s; if(bad.find('+')!=bad.npos) flag=true; //存在+ else

2020-08-17 11:16:41 79

原创 PAT (Basic Level) Practice 1031 查验身份证 (15分)

#include <iostream>#include <algorithm>#include <string>using namespace std;int main(int argc, char const *argv[]){ int N,cnt=0,sum,Z; int weight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; string M="10X98765432"; string

2020-08-17 10:32:39 104

原创 PAT (Basic Level) Practice 1030 完美数列 (25分) 详细思路

先将数组从小到大排序,然后两个for循环,第一个for循环找最小值,第二个for循环找最大值, 然后用变量solve记录最大值和最小值之间的数列个数,但是测试点4会超时,所以得优化循环思路如下例如数列 1 5 7 8 1 4 3 2 p=5排序后 数列为:1 2 3 4 5 6 7 8然后遍历这个数列,用i指向最小值的下标,j指向最大值的下标第1次: i=0 j=0 max=1 min =1 满足 max<=min * p 记录solve=j-i+1 =1,即有1个数

2020-08-17 10:22:19 177

原创 PAT (Basic Level) Practice 1029 旧键盘 (20分) 详细版 & 简单版

详细版#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ string correct,infect,error; cin >> correct >> infect ; for(int i=0;i<correct.length();i++) { if(infe

2020-08-16 17:26:58 107

原创 PAT (Basic Level) Practice 1028 人口普查 (20分)

该版本测试点4容易超时,建议对于10^5以上的数据,将cin换成scanf如果是多输出,则将cout 换成 printfpat的好多题,如果是0,也需要输出0#include <iostream>#include <string>#include <algorithm>#include <vector>using namespace std;struct peo{ string Name; string Birth;};b

2020-08-16 11:06:33 183

原创 PAT (Basic Level) Practice 1027 打印沙漏 详细步骤 (20分)

根据沙漏的形状 上一层与下一层相差2个字符,且沙漏是轴对称的所以我们可以按照这个规律,找出字符数最多的一层,即第一层的字符数int Max_row = 1, num = 1; while (n >= num) { Max_row += 2; num += Max_row * 2; }//Max_row 表示行的最大字符数 ,num表示沙漏的总字符数//从最中间的1个字符开始算起,只要沙漏总字符数小于n ,就加上Max_row*2个字符数,.

2020-08-15 20:40:21 223

原创 C / C++ 四舍五入 取整 + 保留小数

四舍五入取整1.int()//对正数四舍五入float a=1.4; int b=(int)(a+0.5); //加0.5//对负数四舍五入float a=-1.4; int b=(int)(a-0.5); //减0.52.round()float a=1.7; int b=round(a);保留小数,最后一位四舍五入 float a=1.234; //100为 10^(小数位-1) ,既使该数为1位小数 float b=round(a*100)/

2020-08-15 15:26:03 3710

原创 PAT (Basic Level) Practice 1026 程序运行时间 (15分)

#include <iostream>#include <stdio.h>#include <string>#include <algorithm>#include <math.h>using namespace std;int main(int argc, char const *argv[]){ double c1,c2; cin >> c1 >> c2; int h,m,s;

2020-08-15 15:04:22 99

原创 PAT (Basic Level) Practice 1024 科学计数法 (20分)

#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ string s,num; int E_index,fre; cin >> s; E_index=s.find('E'); //E的下标 num=s.substr(3,E_index-3);

2020-08-13 23:35:10 109

原创 PAT (Basic Level) Practice 1023 组个最小数 (20分)

#include <iostream>#include <string>#include <algorithm>using namespace std;int main(int argc, char const *argv[]){ string s; int j,zero=0; cin >> zero; //0的个数 for(int i=1;i<10;i++) { cin >

2020-08-10 22:50:17 127

原创 PAT (Basic Level) Practice 022 D进制的A+B (20分)

#include <iostream>#include <string>#include <algorithm>using namespace std;string convert(int n,int radix){ string m; int k=0; do { k=n%radix; if(k>=0&&k<=9) m+=k+'0'; else

2020-08-10 21:40:40 138

原创 eclipse new 菜单只有 Project 、Example 、 Other 没有Java Project 、Package 、Class等的解决方法

问题解决方法第一步点击菜单栏的Window第二步点击Perspective及Customize Perspective第三步选择Shortcuts ,再选择Java即可结果

2020-08-09 11:34:38 1277 4

原创 PAT (Basic Level) Practice 1020 月饼 (25分)

在计算单价时,会产生小数误差,所以所有数字类型都定义为double,否则会有测试点答案错误#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;struct Goods{ double num; //库存量 double total_price; //总售价 double unit_price; //单位售价(万吨)};b

2020-08-08 21:14:51 113

原创 PAT (Basic Level) Practice 1032 挖掘机技术哪家强 (20分)

#include <iostream>#include <string>#include <map>using namespace std;int main(int argc, char const *argv[]){ int N,No,grade; int max_key=1,max_grade=-1; map<int,int> m; //用map存储编号和总分 cin >> N; for

2020-08-08 20:29:05 167

原创 PAT (Basic Level) Practice 1036 跟奥巴马一起编程 (15分)

#include <iostream>#include <string>using namespace std;int main(int argc, char const *argv[]){ int width,height; char C; cin >> width >> C; if(width%2) height=width/2+1; //宽度为偶数,行数为宽度/2+1 else

2020-08-08 20:11:59 175

原创 PAT (Basic Level) Practice 1019 数字黑洞 (20分)

#include <iostream>#include <string>#include <algorithm>#include <sstream>#include<functional>using namespace std;int main(int argc, char const *argv[]){ string s; string max,min; //存放递减和递增字符串 stringstr

2020-08-07 22:46:23 132

原创 Java Integer 装箱 && 拆箱 && 相等性比较 && NULLPointerException

装箱与拆箱 //手动装箱 Integer a=Integer.valueOf(10); System.out.println("手动装箱"+a.intValue()); //自动装箱 Integer b=10; //自动调用valueof(10)方法 System.out.println("自动装箱"+b.intValue()); //手动拆箱 int c=a.intValue(); System.out.println("手动拆箱"+c); /

2020-07-31 17:41:00 144

原创 PAT (Basic Level) Practice 1005 继续(3n+1)猜想 (25分) C++

解题思路将每一个测试用例砍掉一半后的数字用一个数组记录下来。当所有测试用例访问结束后,将测试用例的值与记录数组对比#include <iostream> #include <vector> #include <algorithm> using namespace std;bool cmp(int a,int b){ return a>b;}int main(){ int N,k; cin >> N; vector<in

2020-07-20 18:13:31 134

原创 PAT (Basic Level)1004 成绩排名 (20分) C / C++ 三种方法

PAT (Basic Level)1004 成绩排名 (20分) C / C++ 三种方法C语言 结构体#include <stdio.h>struct student{ char name[20]; char num[20]; int score;};int main(int argc, char *argv[]){ int i,N,max=0,min=0; scanf("%d",&N); struct student stu[N]; getchar();

2020-07-20 16:50:44 247

原创 数据结构---PTA--一元多项式的乘法与加法运算 (线性表)

结构分析struct number /*number为多项式的一项,包括系数和指数*/{ int ex;//指数 int co;//系数 }; typedef struct data /*data为由number数组和多项式长度组成的结构体*/{ struct number Num[MaxSize]; int Length;}*Data;初始化和...

2020-01-20 15:47:26 580

原创 PTA-数据结构与算法-顺序表操作集&&链式表操作集

**顺序表操作集List MakeEmpty(); //空表Position Find( List L, ElementType X );//在表中查找Xbool Insert( List L, ElementType X, Position P );//在位置P插入元素Xbool Delete( List L, Position P );//删除位置P的元素List MakeEmp...

2020-01-19 20:37:49 525

原创 PTA——数据结构-03-树1 树的同构 (25 分)

给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−...

2019-08-08 21:29:11 1107

原创 二叉树的层序创建&&层序遍历(C语言)

二叉树的创建由于树是非线性结构,创建一颗二叉树得确定结点的插入升序,常用方法为先序创建和层序创建。层序创建输入结点的顺序为从上到下,从左到右,空结点输入为0,并且需要一个队列来储存结点地址。步骤如下:1.先输入第一个数据(根结点)(1)若为0,表示根结点为空,将空指针赋给根指针,创建结束(2)若不为0,则动态分配一个树结点,并储存数据,再将结点地址进队列2.若队列不为空,则出队一个结...

2019-08-05 14:01:46 9830 3

原创 数据结构——队列(C语言)

LinkQueue CreateQueue(); //新建一个队列void AddQ(LinkQueue Q,ElementType Data); //进队ElementType DeleteQ(LinkQueue Q); //出队int IsEmpty(LinkQueue Q); //队列...

2019-08-04 19:35:27 772

原创 ## **PTA-02-线性结构*4 Pop Sequence (25 分) C语言版**

Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the...

2019-07-23 13:40:06 322

空空如也

空空如也

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

TA关注的人

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