1101---递归求解
来源:互联网 发布:感恩节的由来 知乎 编辑:程序博客网 时间:2024/06/06 02:02
题目内容
题目见链接:https://www.patest.cn/contests/pat-a-practise/1101
题目分析
1.题目不难,求可能出现的轴值个数和轴值,但是暴力解法超时,只能得18分(见代码1)
2.利用动态规划,设置两个数组,一个Min,一个Max,分别表示0-i的最大值和i-最后的最小值(见代码2)
题目代码1
#include <iostream>#include <vector>#include <stdio.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */using namespace std; int main(int argc, char *argv[]) { int n; cin>>n; int num[n]; vector<int> res;//存储结果 for(int i=0;i<n;i++){ scanf("%d",&num[i]); } bool flag = true; for(int i=0;i<n;i++){//暴力解法 int t = num[i]; flag = true; for(int j=0;j<i;j++){ if(num[j]>=t){ flag = false; break; } } if(flag){ for(int j=i+1;j<n;j++){ if(num[j]<=t){ flag = false; break; } } } if(flag){ res.push_back(t); } } int size = res.size(); if(size==0){ printf("0\n"); printf("\n"); } else{ cout<<size<<endl; cout<<res[0]; for(int i=1;i<size;i++){ printf(" %d",res[i]); } } return 0;}
题目代码2
#include <iostream>#include <vector>#include <stdio.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */using namespace std; const int MAX = 100000+5;int num[MAX],Min[MAX],Max[MAX];/** Min[i]表示0-i最大值 Max[i]表示i-最后最小值*/ int main(int argc, char *argv[]) { int n; cin>>n; vector<int> res; for(int i=0;i<n;i++){ scanf("%d",&num[i]); } bool flag = true; Min[0]=num[0]; Max[n-1]=num[n-1]; //递归求解 for(int i=1;i<n;i++){ int t = num[i]; if(t>Min[i-1]){ Min[i]=t; } else{ Min[i]=Min[i-1]; } } for(int i=n-1;i>=0;i--){ if(num[i-1]<Max[i]){ Max[i-1]=num[i-1]; } else{ Max[i-1]=Max[i]; } } for(int i=0;i<n;i++){ if(num[i]<=Max[i]&&num[i]>=Min[i]){ res.push_back(num[i]); } } int size = res.size(); //第一行输出0,第二行输出空行 if(size==0){ printf("0\n"); printf("\n"); }else{ printf("%d\n",size); printf("%d",res[0]); for(int i=1;i<size;i++){ printf(" %d",res[i]); } } return 0;}
阅读全文
0 0
- 1101---递归求解
- 递归求解
- 递归求解
- 递归求解
- 递归求解汉诺塔问题
- 递归求解最大公约数...
- 递归求解思考题
- 递归求解分解因式
- 迷宫递归求解
- 字符串组合递归求解
- 递归求解字符串长度
- 递归求解迷宫问题
- 递归设计求解
- 递归表达式的求解
- 迷宫问题递归求解
- 递归求解最大值
- 组合求解--递归法
- 递归实现最大值求解
- BottomTabBar替换RadioButton切换Fragment
- Linux clock driver(2) clk_register 详解
- v$sql与v_$sql相互关系
- Makefile 中使用的函数
- int转换为string的两种方法(to_string、字符串流)
- 1101---递归求解
- java判断某个点是否在所画范围内(多边形/圆形)
- 【十八掌●内功篇】第五掌:HDFS之基础知识
- 解决tomcat闪退问题
- 博弈论模板
- Machine Learning in Action/机器学习实践:kNN算法之约会问题
- 再生龙盘对盘拷贝Linux
- 登陆界面设计
- 《设计模式之禅》学习-----工厂方法模式