编程题
### 问题描述 今天是星期天,小乐找来了自己的好朋友小鲨和小浩一起去海边玩。不幸的是天气不好,他们不能进行冲浪,于是决定在沙滩上堆堡垒。 一天即将结束,他们一共堆了 $N$ 个堡垒。堡垒从编号 $1, 2, 3, ..., N$,每一个堡垒有自己的高度,第 $i$ 个堡垒高为 $h_i$ 。当大家准备离开时,小乐注意到堡垒的高度都是无序的,于是决定叫朋友们一起帮忙把堡垒排个序再离开,排序按照升序进行,即任意的 $i$ 值满足 $h_i \leq h_{i+1}$。 聪明的小鲨觉得直接排序太简单了,于是决定按照以下规则进行排序: 把堡垒分成 $K$ 组连续的堡垒,因此从 $i$ 到 $j$ 的堡垒分别是 $i, i+1, i+2, ..., j$,把每一组的堡垒进行排序后,可以使所有的堡垒都完成排序。请你帮他们计算一下,这些堡垒最多可以分成多少组。 ### 输入格式 输入的第一行包含一个整数 $n$,表示小乐和朋友们一天中用沙子建造的堡垒数量。 接下来的一行包含 $n$ 个整数 $h_i$。其中第 $i$ 个整数对应第 $i$ 个沙堡的高度。 数据范围保证:$1 \leq n \leq10^{5}, 1 \leq h_i \leq 10^{9}$。 ### 输出格式 输出仅一行,表示最多的分组数。 ### 样例输入1 ```text 3 1 2 3 ``` ### 样例输出1 ```text 3 ``` ### 样例输入2 ```text 4 2 1 3 2 ``` ### 样例输出2 ```text 2 ``` ### 样例说明 对于样例 $1$,我们将 $1$ 分为一组,$2$ 分为一组,$3$ 分为一组,总共可以分成 $3$ 组。 对于样例 $2$,我们将 $2, 1$ 分为一组,$3, 2$ 分为一组,总共可以分 $2$ 组。
查看答案
赣ICP备20007335号-2