PAT
weixin_44799147
这个作者很懒,什么都没留下…
展开
-
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 · 52 阅读 · 0 评论 -
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 · 58 阅读 · 0 评论 -
PAT A1048
PAT A1048 two 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 · 58 阅读 · 0 评论 -
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 · 61 阅读 · 0 评论 -
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 · 72 阅读 · 0 评论 -
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 · 83 阅读 · 1 评论 -
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 · 87 阅读 · 0 评论 -
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 · 47 阅读 · 0 评论 -
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 · 59 阅读 · 0 评论 -
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 · 54 阅读 · 0 评论