作者 : Xia Xinyu
日期 : 2021-08-13

原题链接

题目 :给定一个长度为 n 的数组,如果它不是非降序的,那么就将它的前半部分或后半部分消灭。

不断重复这个消灭一半数组的过程,直至数组变为升序为止。

请问,得以幸存的数组的最大可能长度是多少?

输入格式
第一行包含整数 T,表示共有 T 组测试数据。

每组数据第一行包含整数 n。

第二行包含 n 个整数 a1,a2,…,an,表示给定数组。

输出格式
输出幸存数组的最大可能长度。

数据范围
1≤T≤10,
1≤n≤16,n 保证是 2 的整数次幂。
1≤ai≤100。

输入样例:

3
4
1 2 2 4
8
11 12 1 2 13 14 3 4
4
7 6 5 4

输出样例:

4
2
1

思路:若当前数组是不是非降序的,我们就分别处理这个数组的前半部分和后半部分,所以这个问题可以分解为不同子问题,所以使用递归来处理,递归部分代码使用常用二分模版。

二分算法模版点这里

import java.util.*;
public class Main{public static int is_incre(int[] a,int l,int r){int mid = (l + r) / 2;boolean flag = true;for(int i = l + 1;i <= r;i++){if(a[i - 1] > a[i]) flag = false;}if(flag) return r - l + 1;else return Math.max(is_incre(a,mid + 1,r),is_incre(a,l,mid));}public static void main(String[] args){Scanner in = new Scanner(System.in);int T = in.nextInt();while(T-- != 0){int n = in.nextInt();var a = new int[n];for(int i = 0;i < n;i++) a[i] = in.nextInt();int ans = 0;int l = 0,r = n - 1;System.out.println(is_incre(a,l,r));}}
}

时间复杂度: O(n * lgn)(遍历数组 * 二分求解区间)

空间复杂度:O(n * lgn)(每次递归的空间复杂度n * 递归深度lgn)

3802.消灭数组-AcWing题库相关推荐

  1. 703. 数独检查 - AcWing题库

    https://www.acwing.com/problem/content/705/ 数独是一种流行的单人游戏. 目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的 ...

  2. leetcode题库:4.两个排序数组的中位数

    题目: /**   *leetcode题库:4. 求两个排序数组的中位数  *  *  给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 .  *  请找出这两个有序数组的中位数. ...

  3. python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等

    NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...

  4. csharp基础练习题:排序数组矩阵由串长度【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:排序数组矩阵由串长度[难度:1级]: 编写一个函数,需要字符串作为参数数组,并返回包含相同字符串的有序排列,下令从最短到最长. 例如,如果该数组被作为参数传递: [ " ...

  5. 170915 逆向-问鼎杯题库(小磊生病了)

    1625-5 王子昂 总结<2017年9月15日> [连续第348天总结] A. 问鼎杯题库-逆向 B. 小磊生病了 题目:小磊生病了,医生检查出小磊体内有两种有害病菌B和C是引发的关键, ...

  6. 初级c 语言题库,c 语言题库.doc

    c 语言题库 9.2 填空题 9.117 下面程序段是把从终端读入的一行字符作为字符串放在字符数组中,然后输出,请分析程序填空. int i; char s[80],*p; for(i=0;i< ...

  7. python 判断中文标点符号_Python入门编程题库27--生成随机密码

    一.题目 请编写程序,生成随机密码.具体要求如下: (1)使用 random 库,采用 0x1010 作为随机数种子. (2)密码 有s中的字符组成. (3)每个密码长度固定为 10 个字符. (4) ...

  8. 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...

    唐朔飞<计算机组成原理>(第2版)配套题库[名校考研真题+课后习题+章节题库+模拟试题] 第一部分 名校考研真题 2015年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业 ...

  9. 试题以文件的形式存在C语言,2016年计算机二级C语言上机题库

    2016年计算机二级C语言上机题库 一.选择题 1.下列叙述中正确的是( ). A.数据的逻辑结构与存储结构必定是一一对应的 B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结 ...

  10. c语言二级编程题库,二级C语言题库-编程题.doc

    二级C语言题库-编程题 第 PAGE \* Arabic \* MERGEFORMAT 27 页第 PAGE \* Arabic \* MERGEFORMAT 27 页 1.请编写函数fun,其功能是 ...

最新文章

  1. SQL Server中的高可用性(3)----复制 (转载)
  2. ip中继对接_IP软交换系统解决方案
  3. WebSocket客户端断开连接后,服务器端的处理机制
  4. openjudge 14:求10000以内n的阶乘
  5. 【Python-3.3】字典中存储列表
  6. 一文了解机器学习以及其相关领域(上)
  7. Python安装指南
  8. .NET框架类在ASP.NET中的使用(1)——QA
  9. 【优化算法】水基湍流优化算法(TFWO) 【含Matlab源码 1585期】
  10. 我的Android之路
  11. 怎么用电脑录制游戏视频
  12. 今日头条文章评论内容爬取
  13. java 生成der_java – 我们如何将字符串从PEM转换为DER格式
  14. iOS12加密相册、保险箱打开就闪退的,关闭4g和WiFi即可正常使用
  15. 【刷题记录14】Java工程师丨腾讯面试真题(2)
  16. 课堂练习三及课下作业
  17. 新版股票api接口大全
  18. AM335x(TQ335x)学习笔记——Nand网卡驱动移植
  19. C++ char指针(字符指针)及其输出问题
  20. c++日常练习(16)----报数游戏

热门文章

  1. PHP微信公众开发笔记(一)
  2. (转载)使用Maven构建多模块项目
  3. 保持新投资技术先进性和保护既有投资的完美均衡 —— 成都地铁4号线二期PIS车地无线通信...
  4. 微信公众号教程(8)用微信开发模式做欢迎词
  5. 在freemarker文件中,html标签获取后台的值
  6. python 利用urllib2通过指定网页访问url,并捕获内容
  7. jquery设置元素的readonly和disabled
  8. 解决 No utmpx entry. You must exec login from the lowest level shell.
  9. 编写一个基于控制台的聊天室程序
  10. 解决Maven关于本地jar包的打包处理