当前位置: 首页 > news >正文

高校校园网站建设评比自评/福州网站建设

高校校园网站建设评比自评,福州网站建设,新疆兵团第四师建设局网站,张家港网站建设门店1574. 删除最短的子数组使剩余数组有序 目录 1、双指针二分 2、双指针 题目: 给你一个数组a ,请你删除一个子数组(可以为空),使 a中剩下的元素是非递减的 一个子数组指的是原数组中连续的一个子序列 请你返回满足题…

1574. 删除最短的子数组使剩余数组有序

目录

1、双指针+二分 

2、双指针


题目:

给你一个数组a ,请你删除一个子数组(可以为空),使 a中剩下的元素是非递减的

一个子数组指的是原数组中连续的一个子序列

请你返回满足题目要求的最短子数组的长度

1、双指针+二分 

思路:

刚开始没动脑子,上来一个反向最长上升子序列直接wa

错误原因是:最长上升子序列选的是跳着选的,如果这么解部分样例会出现删除两个及以上的子数组,而题目要求删除一个连续子数组,所以dp是不对的

  • 先找出数组两端的最长非递减前缀和最长非递减后缀
  • res=min(删前缀,删后缀)
  • 枚举前缀的每一个点l作为最右端点
  • 对于每个l,二分找出在后缀里第一个≥arr[l]的下标r
  • 更新答案res=min(res,r-l-1)
class Solution {public int findLengthOfShortestSubarray(int[] arr) {int n=arr.length;//先找出数组两端的最长非递减前缀和最长非递减后缀int l=0,r=n-1;while(l+1<n&&arr[l]<=arr[l+1]) l++;while(r-1>=0&&arr[r]>=arr[r-1]) r--;if(l>=r) return 0; //如果最长非递减前后缀重叠 说明整个序列都是非递减int res=Math.min(r,n-1-l); //res=min(删前缀,删后缀)//枚举前缀的每一个点l作为最右端点//对于每个l,二分找出在后缀里第一个≥arr[l]的下标r//更新答案res=min(res,r-l-1),最短子数组就是区间[l+1,r-1] r-1-l-1+1=r-l-1for(int i=0;i<=l;i++){int rr=search(arr,arr[i],r);res=Math.min(res,rr-i-1);}return res;}public int search(int[] arr,int target,int l){int r=arr.length; //这里多设置1 是因为如果后缀中找不到≥arr[l]的数时 则删除的是整个后缀while(l<r){int mid=l+r>>1;if(arr[mid]>=target) r=mid;else l=mid+1;}return l;}
}

2、双指针

思路:

  • 先找出数组两端的最长非递减前缀和最长非递减后缀 l和r
  • res=min(删前缀,删后缀)
  • 枚举前缀的每一个点l作为最右端点  用双指针在后缀中找到第一个比arr[l]大的数
  • 不断更新最小res=min(r-l-1)
class Solution {public int findLengthOfShortestSubarray(int[] arr) {int n=arr.length;//先找出数组两端的最长非递减前缀和最长非递减后缀int l=0,r=n-1;while(l+1<n&&arr[l]<=arr[l+1]) l++;while(r-1>=0&&arr[r]>=arr[r-1]) r--;if(l>=r) return 0;int res=Math.min(r,n-1-l);for(int i=0;i<=l;i++){while(r<n&&arr[r]<arr[i]) r++;res=Math.min(res,r-i-1);}return res;}
}

 

这里不甘心非要放个我的最长上升子序列(误

class Solution {public int findLengthOfShortestSubarray(int[] arr) {int n=arr.length;int[] f=new int[n+1]; //f[i]以下标i为结尾的最长上升子序列长度for(int i=0;i<n;i++){f[i]=1;for(int j=0;j<i;j++)if(arr[i]>=arr[j])f[i]=Math.max(f[i],f[j]+1);}int res=-1;for(int i=0;i<n;i++) res=Math.max(res,f[i]);return n-res;}
}

 

http://www.lbrq.cn/news/1062811.html

相关文章:

  • HTML网站制作设计/拼多多代运营收费标准
  • 廊坊网站建设冀icp备/爱站小工具计算器
  • 专业建设网站企业/友情链接交换的作用在于
  • 网站备案查询中心/营销推广app
  • 余姚公司网站建设/宁波网站建设制作报价
  • 江宁做网站价格/软文街
  • 湛江网站建设推广/福州seo公司
  • 网商网站怎么做/网站你应该明白我的意思吗
  • 网站规划图/线上营销工具
  • b2c网络购物系统/seo推广任务小结
  • 深圳定制网站制作厂家/网络推广服务合同范本
  • 怎么做网站推广知乎/百度企业查询
  • 青岛网站优化公司/百度认证中心
  • 一个好的网站怎样布局/域名申请的流程
  • 网站建设 分类/哈尔滨seo和网络推广
  • 单位网站建设/品牌策划案
  • 建设部网站备案/北京百度竞价
  • 石家庄网络营销哪家好做/深圳最好的外贸seo培训
  • 网站建设需要哪些基础/自助建站系统个人网站
  • 网页界面设计ppt/汕头seo推广
  • 外包公司做网站有哪些内容/搜索广告优化
  • 网站制作企业/5g网络优化
  • 网站手机版跳转代码/网站网络推广优化
  • 做网站建设的注意事项/短视频营销常用平台有
  • 银川 网站建设/口碑营销理论
  • 昆明睿腾科技网站建设/直通车推广技巧
  • WordPress网站转HTPPS/搜索关键词查询
  • 解放碑电子商务网站建设/如何做好营销
  • 绍兴中交水利水电建设有限公司网站/成人再就业技能培训班
  • 如何做授权网站/产品怎么在网上推广
  • RHCA04--系统模块管理与资源限制
  • 14.Home-新鲜好物和人气推荐实现
  • 【计算机网络 | 第2篇】计算机网络概述(下)
  • ArcGIS的字段计算器生成随机数
  • 快速了解决策树
  • Java多线程入门-基础概念与线程操作