自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 完全二叉树

要根据题目要求先确定采用什么样的遍历方式 先序 中序 后序 层次。然后再根据实际来编写满足题目的方案。

2023-03-04 17:50:33 41

原创 单链表排序递归分治

时间复杂度O(NlogN)空间复杂度O(logN)

2023-03-03 14:03:57 45

原创 合并k个有序链表

【代码】合并k个有序链表。

2023-03-01 15:04:02 54

原创 链表中的节点每k个一组翻转

组内头节点反转后变尾节点。pre为翻转后的头节点。先翻转组内节点再递归。

2023-03-01 14:33:09 29

原创 二分左边界右边界

二分

2023-02-24 19:08:42 25

原创 PAT A1069

PAT A1069考察整数每一位存储到数组排序后重建整数#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ int N, max = -1; scanf("%d", &N); vector <int> a, b, ans; a.resize(N); b.resize(N);

2021-03-08 14:33:11 35

原创 PAT A1101

PAT A1101在数据输入时就可以得到每一元素左边最大值;倒序遍历数组得到每一元素右边最小值。下方代码超时。。。#include<iostream>#include<vector>#include<cstdio>#include<algorithm>using namespace std;bool findmin(vector<int> a,int n){ if(n==0) return true; if(*max_ele

2021-03-08 13:56:00 38

原创 PAT A1048

PAT A1048two pointers#include<iostream>#include<cstdio>#include<vector>#include<algorithm>using namespace std;int n1,n2;vector<int> a; int main(){ int b; scanf("%d %d",&n1,&n2); for(int i=0;i<n1;i++){

2021-03-08 11:33:59 35

原创 PAT A1029

PAT A1029无脑排序输出,不超时#include<iostream>#include<cstdio>#include<vector>#include<algorithm>using namespace std;int n1,n2;vector<int> a; int main(){ int b; scanf("%d",&n1); for(int i=0;i<n1;i++){ scanf("%d",&a

2021-03-08 11:06:22 41

原创 PAT A1089

PAT A1089考察插入排序和归并排序插入排序完整执行 每一步都与中间序列对比,判断是哪种排序方式。#include<iostream>#include<cstdio>#include<vector>#include<math.h>#include<algorithm>using namespace std; //返回插入排序的下一步 int n;int isinsert(vector<int> &a,v

2021-03-08 10:44:50 57

原创 PAT A1044

PAT A1044解题思路:数组sum[i]:a[1]+a[2]+…+a[i];严格单调增加。所以本题就变为寻找sum[j]-sum[i]等于定值或略大于定值时i,j的值,然后输出i,j。upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。lower_bound( begin,end,num):从数组的begin位置

2021-03-07 17:24:15 66

原创 PAT A1031

PAT A1031#include<iostream>  #include<cstdio> using namespace std;int main(){ string a; cin>>a; int n=a.length(); int n1,n2,n3; n1=n/2; //left n2=n/2; //right n3=(n%2==0)?2:3; //bottom while(n3<n1){ n1--; n2

2021-03-06 14:42:46 30

原创 PAT A1042

PAT A1042题目倒是也不难就是找bug太辛苦了。。。数据贼多。。。注意sort(&a[1],&a[55],cmp) 排序范围是左闭右开区间。核心逻辑:bool cmp(data a,data b){ return a.rank<b.rank;}for(int j=0;j<n;j++){ sort(&a[1],&a[55],cmp); for(int i=1;i<=54;i++){ a[i].rank=r[i]; }}

2021-03-06 10:56:37 39

原创 PAT A1043

PAT A1043题意要看懂,镜像树与原树的先后序遍历有区别镜像树先后序遍历均先遍历右子树。考点:建树、插入、先后序遍历;#include<vector>#include<cstdio>#include<iostream>using namespace std;int data[1100];struct node{ int d; node* left; node* right;};void insert(node* &root,

2021-03-05 11:13:34 37

原创 PAT 甲级1060

PAT A1060函数形参实参问题要注意。0000 0000.00 对于设及0的问题要特判,这应该是oj最后一个点。核心逻辑代码如下。#include<iostream>#include<string>using namespace std;string deal(string a,int& e){ int k=0; while(a[0]=='0' && a.length()>0){ a.erase(a.begin()); }

2021-03-04 10:53:31 46 1

原创 PAT甲级1015

PAT甲级1015很简单的一道题,只需要注意0,1,2的问题就可以了,读入数据由于是读到负数结束所以可以采用while循环,两个进制转换函数,一个判断是否是素数的函数就可以解决问题,范围int类型足够。但是,注意细节!!!!!!!!!!!!!!尤其放在考试的时候!!!!!!!!我就是少了一个等号,而没有读入0,而找了很久的bug。。。。。。。。。。代码没有借鉴的意义,很繁琐,待我第二遍刷题库...

2019-10-19 23:31:47 137

原创 PAT甲级1012

PAT甲级1012这是一道让我想放弃的题。。。。。。因为没有好好读题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。算法不难就是很恶心,很复杂,需要很多排序。。。。#include<iostream>using...

2019-10-18 20:38:19 79

原创 PAT甲级1011

PAT甲级1011#include<iostream>#include<stdio.h>using namespace std;double findmax(double a,double b,double c,int &n){ double m; if(a>b){ m=a; n=0; }else{ m=b; n=1; } i...

2019-10-14 11:26:38 45

原创 PAT甲级1010

PAT甲级1010#include<iostream>#include<string> #include<math.h>using namespace std;long long ten(string n,long long r){ long long x=0; for(int i=0;i<n.length();i++){ if(n[i]...

2019-10-11 16:26:27 58

原创 PAT甲级1009

PAT甲级1009#include<iostream>#include<stdio.h>using namespace std;struct po{public: int a; double b;};int main(){ int n1,n2; double s[2001]={0}; po p1[1000],p2[1000]; cin>&gt...

2019-10-05 11:15:20 106

原创 PAT甲级1008

PAT甲级1008#include<iostream>using namespace std;int main(){ int n; int a[101]={0}; int sum=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ if(...

2019-10-04 22:53:14 49

原创 PAT甲级1007

PAT甲级1007#include<iostream>using namespace std;int main(){ int n; int a[100000]={0}; int i,j,k,lg=0; int min=-1; int sum=0; int start=0,end=0; cin>>n; for(i=0;i<n;i++){ cin...

2019-10-03 23:02:48 45

原创 PAT甲级1006

PAT甲级1006#include<iostream>#include<stdio.h>#include<string> using namespace std;struct people{public: string id; string in; string out;};int main(){ string max="23:59:59...

2019-10-02 17:04:49 63

原创 PAT甲级1005

PAT甲级1005#include<iostream>#include<stdio.h>#include<string> using namespace std;int main(){ int s[1000]={0}; string m; cin>>m; int n=0; int sum=0; if(m[0]=='0'){ ...

2019-10-02 16:01:39 79

原创 PAT甲级1002

PAT甲级1002题不得不说坑是真的多。。。 题目要求看似很简单,给出两个多项式,每一行第一个数字是非零项个数(项数),然后紧接每一项的幂和系数,要求进行简单的多项式合并。重点来了!!!结果多项式要按幂从大到小排列,这个可能很多人会看出来,因为样例也是按幂从大到小排列。如果观察到这个规律,那算法可以用这样的:while(i<n1 && j<n2){ if(s...

2019-08-19 16:21:01 200 1

原创 PAT甲级1001

PAT 甲级1001c++#include<iostream> #include<math.h>using namespace std;int main(){ int a,b,c,i=0; int d[100]; cin>>a; cin>>b; c=a+b; if(c<0){ cout<<'-'; c=...

2019-08-15 13:36:02 41

空空如也

空空如也

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

TA关注的人

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