• CCF——折点计数(2016-4)


    问题描述
      给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。

      给定n个整数a1a2, …, an表示销售量,请计算出这些天总共有多少个折点。
      为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不同的,即ai-1ai。注意,如果两天不相邻,销售量可能相同。
    输入格式
      输入的第一行包含一个整数n
      第二行包含n个整数,用空格分隔,分别表示a1a2, …, an
    输出格式
      输出一个整数,表示折点出现的数量。
    样例输入
    7
    5 4 1 2 3 6 4
    样例输出
    2
    评测用例规模与约定
      所有评测用例满足:1 ≤ n ≤ 1000,每天的销售量是不超过10000的非负整数。

    说明:注意是左右两边的点同时小于中间的点,或者左右两边的点同时大于中间的点。

    import java.util.Scanner;
    
    public class 折点计数 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int num = 0; // 折点计数
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = sc.nextInt();
            }
    
            for (int i = 1; i < n - 1; i++) {
                if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1]) {
                    num++;
                } else if (arr[i] < arr[i - 1] && arr[i] < arr[i + 1]) {
                    num++;
                }
            }
    
            System.out.println(num);
    
            sc.close();
        }
    }
  • 相关阅读:
    C
    B
    A
    G
    BZOJ_1208_&_Codevs_1258_[HNOI2004]_宠物收养所_(平衡树/set)
    Codevs_1230_元素查找_(set/Hash)
    POJ_2503_Babelfish_(Trie/map)
    POJ_2001_Shortest_Prefixes_(Trie)
    BZOJ_3670_[NOI2014]_动物园_(kmp)
    BZOJ_3196_二逼平衡树_(树套树,线段树+Treap)
  • 原文地址:https://www.cnblogs.com/tangxlblog/p/9998561.html
Copyright © 2020-2023  润新知