1.单峰序列
问题描述
给定含有n个不同整数的数组L=<a1,a2,…,an>,如果L中存在ai,使得a1<a2<…<ai-1ai+1>…>an。则称L是单峰的,并称ai是L的“峰顶”。假设L是单峰的,设计一个算法,找L的峰顶。
输入形式
一共包括两行,第一行一个整数N,表示数组中整数的个数。
接下来的一行中包含N个整数,以空格分隔
输出形式
如果这些整数中存在峰顶元素ai,则输出该元素的下标i,否则输出0
样例输入
9
1 2 5 7 9 8 6 4 3
样例输出
5
另一组样例:
输入:
9
3 5 6 2 9 8 7 4 1
输出:0

根据题目叙述,不难发现这样的规律,如果是单峰序列,则一定存在一个峰,且峰的左右两侧是单调的,如果整个序列是单调递增或者单调递减则不符合题目中对单峰序列的定义。我的思路是从中点开始寻找,比较中点和中点左右的点这三个点的大小关系,从而得知序列的单调性,如果单调递增,那么峰一定在这个中点的右边,如果单调递减,那么峰一定在中点的左边,如果中点就是峰,那么需要检测峰的左右两边是否有其他的峰,只有没有其他峰的情况下才能算作单峰序列,一直递归遍历即可。

#include<bits/stdc++.h>
using namespace std;
int num[1005];
int fun(int left,int right)
{if(left+1==right)return -1;int mid=(left+right)/2;if(num[mid]>num[mid-1]&&num[mid+1]>num[mid])return fun(mid,right);else if(num[mid]<num[mid-1]&&num[mid+1]<num[mid])return fun(left,mid);else if(num[mid]>num[mid-1]&&num[mid]>num[mid+1])if(fun(left,mid)<0&&fun(mid,right)<0)return mid;elsereturn -1;elsereturn -1;
}
int main()
{int N;while(scanf("%d",&N)!=EOF){int flag1=0,tar=-1,flag2=0;scanf("%d",&num[0]);for(int i=1;i<N;i++)scanf("%d",&num[i]);printf("%d\n",fun(0,N-1)+1);}return 0;}

计算机算法设计与分析 单峰序列相关推荐

  1. 计算机算法设计与分析(第5版)PDF

    <计算机算法设计与分析(第5版)>是2018年电子工业出版社出版的图书,作者是王晓东. 整本书的结构是:先介绍算法设计策略思想,然后从解决经典算法问题来学习,通过实践的方式去学习算法. 网 ...

  2. 计算机算法设计与分析第四版复习,计算机算法设计与分析(第4版)第1章.ppt

    <计算机算法设计与分析(第4版)第1章.ppt>由会员分享,可在线阅读,更多相关<计算机算法设计与分析(第4版)第1章.ppt(50页珍藏版)>请在人人文库网上搜索. 1.计算 ...

  3. 计算机算法设计与分析 动态规划 实验报告,动态规划法解最长公共子序列(计算机算法设计与分析实验报告).doc...

    动态规划法解最长公共子序列(计算机算法设计与分析实验报告) 实报 告 实验名称:任课教师::姓 名:完成日期:二.主要实验内容及要求: 要求按动态规划法原理求解问题: 要求交互输入两个序列数据: 要求 ...

  4. 计算机算法设计与分析考试题,《计算机算法设计与分析》习题及答案

    <计算机算法设计与分析>习题及答案 一.选择题 1.二分搜索算法是利用( A )实现的算法. A.分治策略 B.动态规划法 C.贪心法 D.回溯法 2.下列不是动态规划算法基本步骤的是( ...

  5. 国科大计算机算法设计与分析陈玉福,中科院陈玉福计算机算法设计与分析期末简答题答案.pdf...

    中科院陈玉福计算机算法设计与分析期末简答题答案 1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势? 共通点:动态规划和贪心算法都是一种递推算法 ,均有局部最优解来推导全局最优解 ...

  6. 计算机算法设计与分析教学大纲,《算法设计与分析》教学大纲

    <<算法设计与分析>教学大纲>由会员分享,可在线阅读,更多相关<<算法设计与分析>教学大纲(3页珍藏版)>请在人人文库网上搜索. 1.课程编号:&quo ...

  7. 国科大刘玉贵老师计算机算法设计与分析2021年期末考试题回顾

    总体感受 国科大研究生的计算机算法设计与分析课程有三位老师教授,分别是卜东波老师.陈玉福老师 和刘玉贵老师,这三位老师上课各有特色和风格.我选择的是刘玉贵老师的课程. 这门课程的内容挺充足的,但是有个 ...

  8. 计算机算法设计与分析第五章思维导图知识点总结 ( 初稿 )

    复习链接 计算机算法设计与分析第一章思维导图 计算机算法设计与分析第二章思维导图&&知识点总结 计算机算法设计与分析第三章思维导图&&知识点总结 计算机算法设计与分析第 ...

  9. 线性时间选择 python实现 计算机算法设计与分析

    最近算法老师布置了很多作业啊,其中一项就是要求实现书上<计算机算法设计与分析>28页的算法,实现过程如下:

最新文章

  1. Flex使用mx:Tree控件创建树(可添加和删除节点)
  2. c语言infile和outfile用法,C语言文件读写基本操作DEMO
  3. python文件实时同步_python文件自动同步备份v1.2【运维必备】2020/12/31
  4. 用基本信号画出如下的信号_股市入门基本知识丨下跌时期可以抄底的安全信号有哪些...
  5. [python交互]Excel催化剂与python交互原理剖析,py开发者按此规范可自行扩展功能...
  6. android 加载大长图,android加载长图片的方法
  7. 镇江高等专科学校计算机考试,镇江市人事考试考工服务平台
  8. 谭浩强C语言第五版,学习笔记【7500字】【原创】
  9. eclipse添加windowsBuilder的方法
  10. 解决电信网络Echarts官网打不开的问题
  11. 马来酰亚胺和琥珀酰亚胺交联剂Sulfo-SMCC,CAS:92921-24-9的溶解性介绍
  12. 关于域名备案后的注意事项,血淋淋的教训
  13. python 微信支付sdk_weixin-python
  14. 最后半天时间,支付宝等第三方支付机构备付金必须100%上交
  15. 汉光武帝刘秀--昆阳之战
  16. computer-06 其它
  17. java 自动转 golang_JAVA转Golang
  18. Ubuntu怎么切换为中文版
  19. Xamarin效果第二十三篇之离线语音识别
  20. Bootstrap -Card卡片

热门文章

  1. Machine Learning In Action 第二章学习笔记: kNN算法
  2. 图论 BZOJ 3669 [Noi2014]魔法森林
  3. poj 1035 Spell checker(hash)
  4. 使用VS2012 C++ 进行单元测试
  5. sqlite字段类型说明
  6. 【翻译】Emmet(Zen Coding)官方文档 之七 一览表
  7. class checklist
  8. linux基础命令学习笔记(二)
  9. hibernate之初学复合主键
  10. win7远程连接开启方法