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

重庆网站建设狐灵免费查看招标信息的网站

重庆网站建设狐灵,免费查看招标信息的网站,银川做网站服务,可以自己做网站目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介绍 …

目录

  • 前言
  • 问题介绍
  • 解决方案
  • 代码编写
    • java语言版本
    • c语言版本
    • c++语言版本
  • 思考感悟
  • 写在最后

前言

当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~

在此感谢左大神让我对算法有了新的感悟认识!

问题介绍

原问题
可整合数组定义:如果数组排序后,相邻元素之间差值为1的话,则该数组为可整合数组
给定一个数组arr,求arr中最长的可整合子数组。
如:5532643
返回53264,长度为5

解决方案

原问题
首先有个定律:相邻元素差值为1的话,该数组的最大值和最小值差值+1就应该是数组的长度
根据该定律遍历数组的所有子数组,每一轮检测数组最大值和最小值差值是否是当前数组长度,求出最长长度即可。

代码编写

java语言版本

原问题:

/*** 二轮测试:求代码可整合子数组的最长长度* 可整合数组定义:对数组排序后,数组中每相邻两个数之间的差值为1* @param arr* @return*/public static Record getLILCp1(int[] arr) {if (arr == null || arr.length == 0) {return null;}Record record = new Record();int min;int max;// 用来判重Set<Integer> set = new HashSet<>();// 遍历每一个子数组for (int i = 0; i < arr.length; i++) {// 每一轮需要清空最值min = arr[0];max = arr[0];set.clear();for (int j = i; j < arr.length; j++) {// 子数组为[i...j],先计算最值// 更新当前子数组的最大值或最小值max = Math.max(max, arr[j]);min  = Math.min(min, arr[j]);// 计算当前子数组是否是可整合数组if (set.contains(arr[j])) {// 从j开始存在重复的,直接下一轮break;}else if (max - min + 1 == j - i + 1) {// 值域 == 长度if (j - i + 1 > record.len) {record.setLen(j - i + 1);record.setArr(Arrays.copyOfRange(arr, i, j+1));}set.add(arr[j]);}}}return record;}/*** 存储最长子数组长度和对应子数组的实体类*/static class Record {private int len;private int[] arr;public int getLen() {return len;}public void setLen(int len) {this.len = len;}public int[] getArr() {return arr;}public void setArr(int[] arr) {this.arr = arr;}@Overridepublic String toString() {return "Record{" +"len=" + len +", arr=" + Arrays.toString(arr) +'}';}}public static void main(String[] args) {System.out.println(getLILCp1(new int[]{5,5,3,2,6,4,3}));}

c语言版本

正在学习中

c++语言版本

正在学习中

思考感悟

这道题给我两个启发:
首先求符合要求的子数组类型的问题一定能够通过暴力解决
符合要求的子数组可以通过暴力算法遍历每一个子数组,这道题我一开始往最优解上想的时候,根本没有考虑过使用暴力遍历每一个子数组,虽然可能大多数题目都不会这么写,但是不代表所有的题最优解不会遍历所有子数组。
其次长度和最值差值之间的关系需要记牢
相差1可以用长度等于最值差值这个定律在我刚开始接触算法的时候可能没有想到过,但是数组计数算法也有相似的启发,有时候我们可以多想想数组的index和实际的值有时候是否存在微妙的关联是很重要的。

写在最后

方案和代码仅提供学习和思考使用,切勿随意滥用!如有错误和不合理的地方,务必批评指正~
如果需要git源码可邮件给2260755767@qq.com
再次感谢左大神对我算法的指点迷津!

http://www.yayakq.cn/news/842359/

相关文章:

  • 乐潍清网站额建设wordpress+手工网站
  • seo网站建设公司公司建网站多少钱一年
  • 中企动力公司网站价格秦皇岛哪里能做网站
  • 网站建设服务公中国100强企业排行榜
  • 找工作室的网站网站建设现在主要做些什么
  • 组建团队建设网站与开发需要多少钱美丽寮步网站建设价钱
  • 搜索推广平台有哪些网站优化 h几 更易被抓
  • 苏州工业园区gdp长沙网站优化外包服务
  • 一流的郑州网站建设厦门做网站哪家公司好
  • 北京网站建设主页恩施seo搜索引擎优化
  • 阳泉哪里做网站网站建设文案详情
  • 阿里云搭建企业网站宜昌网站制作公司
  • 国内网站赏析南昌网站建设南昌
  • 企业网站的规划与建设ppt湛江模板建站公司
  • 网站开发 只要网站开发工作分解结构
  • 衡阳市建设网站免费移动网站模板
  • 辽宁省网站制作公司排名绍兴建设局网站首页
  • 菏泽郓城网站建设公司wordpress内容爬取
  • 网站后台模板论坛上海谷歌seo公司
  • 点击网站首页域名又添加一个网站说明书的详细说明
  • 请写出网站建设前期需要做的准备公司网站手机端和电脑端
  • 常用的网站推广方法黄陌陌网站怎么做
  • 视频网站中滑动列表怎么做的目前网站建设用哪种语言
  • 怎样看一个网站的浏览量wordpress 合同
  • 做文案看什么网站淘宝网站设计模板下载
  • 百度云网站入口网站源码下载地址是什么
  • 传统企业营销型网站建设自建站外贸平台有哪些比较好
  • 惠州公司网站建设企业网页制作哪个公司好
  • 银川做网站公司在线教育oem平台
  • 建设网站规模与类别漳州本地新闻头条