【九度OJ】题目1126:打印极值点下标 解题报告

标签(空格分隔): 九度OJ


[LeetCode]

http://ac.jobdu.com/problem.php?pid=1126

题目描述:

  1. 在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,
  2. 或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i

输入:

  1. 每个案例的输入如下:
  2. 2×n+1行输入:第一行是要处理的数组的个数n
  3. 对其余2×n行,第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。

输出:

  1. 每个案例输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。

样例输入:

  1. 3
  2. 10
  3. 10 12 12 11 11 12 23 24 12 12
  4. 15
  5. 12 12 122 112 222 211 222 221 76 36 31 234 256 76 76
  6. 15
  7. 12 14 122 112 222 222 222 221 76 36 31 234 256 76 73

样例输出:

  1. 0 7
  2. 2 3 4 5 6 10 12
  3. 0 2 3 10 12 14

Ways

查找题。

这个题我的想法就是很简单的比较当前值与左右值,看是否是极值点。

算法核心很简单,每次出现问题的地方都在输出的格式上。这个题里边,因为每行前后的空格问题出现了两次Presentation Error,这个代表基本正确,但是表达格式略有问题。

我添加了个bool的判断是否是每行的第一个元素来方便判断是否在前面添加一个空格后,这个题就成功的AC了。

另外注意,left值是从-1开始取得,要不然UI一直和cur一样。

  1. #include <stdio.h>
  2. int main() {
  3. int n;
  4. int m;
  5. int buf[80];
  6. while (scanf("%d", &n) != EOF) {
  7. for (int i = 0; i < n; i++) {
  8. int left = -1, cur = 0, right = 1;
  9. scanf("%d", &m);
  10. for (int j = 0; j < m; j++) {
  11. scanf("%d", &buf[j]);
  12. }
  13. bool isFirst= true;
  14. while (cur < m) {
  15. if (cur == 0 && buf[cur] != buf[right]) {
  16. printf("%d", cur);
  17. isFirst= false;
  18. } else if (cur == m - 1 && buf[cur] != buf[left]) {
  19. if (isFirst){
  20. printf("%d", cur);
  21. isFirst= false;
  22. }else{
  23. printf(" %d", cur);
  24. }
  25. } else if ((buf[cur] > buf[left] && buf[cur] > buf[right])
  26. ||(buf[cur] < buf[left] && buf[cur] < buf[right])) {
  27. if (isFirst){
  28. printf("%d", cur);
  29. isFirst= false;
  30. }else{
  31. printf(" %d", cur);
  32. }
  33. }
  34. left++;
  35. cur++;
  36. right++;
  37. }
  38. printf("\n");
  39. }
  40. }
  41. return 0;
  42. }

Date

2017 年 2 月 27 日

【九度OJ】题目1126:打印极值点下标 解题报告的更多相关文章

  1. 九度OJ 题目1384:二维数组中的查找

    /********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...

  2. hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  3. 九度oj题目&amp;吉大考研11年机试题全解

    九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码).    http://ac.jobdu.com/problem.php?pid=11 ...

  4. 九度oj 题目1007:奥运排序问题

    九度oj 题目1007:奥运排序问题   恢复 题目描述: 按要求,给国家进行排名. 输入:                        有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...

  5. 九度oj 题目1087:约数的个数

    题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...

  6. 九度OJ题目1105:字符串的反码

    tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...

  7. 九度oj题目1009:二叉搜索树

    题目描述: 判断两序列是否为同一二叉搜索树序列 输入:                        开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...

  8. 九度oj题目1002:Grading

    //不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...

  9. 九度OJ题目1003:A+B

    while(cin>>str1>>str2)就行了,多简单,不得不吐槽,九度的OJ真奇葩 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号", ...

随机推荐

  1. 生成随机数的N种方式

    首先需要说明的是,计算机中生成的随机数严格来说都是伪随机,即非真正的随机数,真正随机数的随机样本不可重现.那么我们来看看代码中有哪些方式可以生成随机数. rand rand函数声明如下: #inclu ...

  2. 『与善仁』Appium基础 — 16、APPium基础操作API

    目录 1.前置代码 2.安装和卸载APP 3.判断APP是否已安装 4.关闭APP软件和关闭驱动对象 5.发送文件到手机和获取手机中的文件 6.获取当前屏幕内元素结构(重点) 7.脚本内启动其他APP ...

  3. JavaBean的命名规则

    JavaBean的命名规则Sun 推荐的命名规范1 ,类名要首字母大写,后面的单词首字母大写2 ,方法名的第一个单词小写,后面的单词首字母大写3 ,变量名的第一个单词小写,后面的单词首字母大写为了使 ...

  4. 数据源(Data Source

    数据源(Data Source)顾名思义,数据的来源,是提供某种所需要数据的器件或原始媒体.在数据源中存储了所有建立数据库连接的信息.就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数 ...

  5. Java虚拟机(JVM)以及跨平台原理

    相信大家已经了解到Java具有跨平台的特性,可以"一次编译,到处运行",在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的. 那么,跨平台 ...

  6. springboot优雅实现异常处理

    前言 在平时的 API 开发过程中,总会遇到一些错误异常没有捕捉到的情况.那有的小伙伴可能会想,这还不简单么,我在 API 最外层加一个 try...catch 不就完事了. 哈哈哈,没错.这种方法简 ...

  7. 数据库系统相关SQL

    杀进程 查出所有被锁住的表 select b.owner TABLEOWNER, b.object_name TABLENAME, c.OSUSER LOCKBY, c.USERNAME LOGINI ...

  8. Linux 性能优化笔记:应用监控

    指标监控 跟系统监控一样,在构建应用程序的监控系统之前,首先也需要确定,到底需要监控哪些指标.特别是要清楚,有哪些指标可以用来快速确认应用程序的性能问题. 对系统资源的监控,USE 法简单有效,却不代 ...

  9. 结合redis缓存的方式,查询和展示分类信息

    package cn.itcast.travel.service.impl;import cn.itcast.travel.dao.CategoryDao;import cn.itcast.trave ...

  10. MyBatis中关于大于,小于写法

    第一种写法(1): 原符号 < <= > >= & ' " 替换符号 < <= > >= & &apos; " ...