zzuli求最大值
2015-11-22 12:08
423 查看
1786: 求最大值
Time Limit: 1 Sec Memory Limit: 128 MB Submit: 134 Solved: 28SubmitStatusWeb Board
Description
给定n个数,a[1]到a,请你帮忙找出a[i] - a[j]的最大值,其中1 <= i < j <= n.
Input
第一行一个数T,表示一共有T组数据(T <= 20); 每组测试数据第一行一个整数n(2 <= n <= 10 ^ 5),表示接下来有n个数,第二行n个整数,不超过10 ^ 6,中间用空格隔开。Output
每组数据输出一行,表示最大值是多少。Sample Input
2 5 5 2 3 6 1 2 3 2Sample Output
5 1题解:
题意是让找出a[i] - a[j]的最大值,但是i<j;
思路是找出a[i]前面最大的数px,再贪心找出px-a[i]的最大值就好了。。。
但是自己竟然想到了用LIS来找。。。直接px>a[i]?不就好了吗?把问题复杂化了。。。
代码:
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int MAXN=1e5+100; int main(){ int T,N; scanf("%d",&T); while(T--){ scanf("%d",&N); int x,px,ans=-1e7; scanf("%d",&x); px=x; for(int i=1;i<N;i++){ scanf("%d",&x); ans=max(ans,px-x); if(x>px)px=x; } printf("%d\n",ans); } return 0; }
自己的二分超时代码。。。。纯属无用工。。。肯定超时了。。。
//#include<bits/stdc++.h> #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<vector> using namespace std; const int MAXN=1e5+100; int m[MAXN]; vector<int>vec; typedef vector<int>::iterator ITE; ITE erfen(ITE a,ITE b,int x){ int mid,l=0,r=b-a; while(l<r){ mid=(r-l)/2; if(vec[mid]>=x)r=mid-1; else l=mid+1; } return a+l; } int main(){ int T,n; scanf("%d",&T); while(T--){ scanf("%d",&n); int mx,ans=-1e7; vec.clear(); for(int i=0;i<n;i++){ scanf("%d",m+i); if(i){ mx=vec[vec.size()-1]; // printf("%d\n",mx); ans=max(ans,mx-m[i]); } vector<int>::iterator iter; iter=erfen(vec.begin(),vec.end(),m[i]); if(iter==vec.end())vec.push_back(m[i]); else *iter=m[i]; } printf("%d\n",ans); } return 0; }
相关文章推荐
- c语言:有趣的printf输出,“4321”
- android四大组件之Service服务之总体概述
- Cpp--next_permutation函数
- 输出阻抗与输入阻抗详解
- [转载]AxureRP 7.0部件详解(一)
- Raspberry PI 编译WLan驱动模块, 并配置登录WIFI
- 第三方框架收集
- c语言:2种方法编程及优化;喝汽水问题
- 操作系统概念(第七章) 死锁
- 给android studio安装新字体,如mac系统的monaco字体
- GDAL中GDALDataType中值与其在C++中数据类型对应
- Objective-C 中的元类(meta class)
- Djanto static静态文件配置
- 懒加载异常处理
- AJAX远程跨域获取数据
- jaxws webservice spring 注入 解决NullPointerException
- 【Java 基础】--HttpServlet详解
- 堆排序 (Heap Sort)
- linux下的软连接和硬连接
- 信息安全系统设计基础第十周学习总结-吕松鸿