算法总结之 最长的可整合子数组长度

Sparse4Dv3 instance_feature也设置为nn.Parameter。修正分支2*(linear->relu->linear->relu->layernorm)->linear->scale,分类分枝2*(linear->relu->layernorm)->linear(256,9),质量评估分枝2*(linear->relu->layernorm)->linear(256,2)。每组两类instance,1是加上范围(-x,x)内均匀分布噪声,2是加上(-2x,-x)U(x,2x)范围内均匀分布噪声。 阅读详情

算法总结之 最长的可整合子数组长度

如果一个数组在排序之后,每相邻两个数差的绝对值都为1,则该数组为可整合数组

 

方法一(通俗的做法)

  考察每个子数组-------> 复制成新数组------> 新数组排序------>验证是否符合

代码:

 

package TT;

import java.util.Arrays;

public class test61 {
  
      public static int getLIL1(int[] arr){
          
         if(arr==null || arr.length==0){
             return 0;
         }
         
         int len = 0;
         for(int i=0; i<arr.length; i++){
             for(int j=i; j<arr.length; j++){
                  if(isIntegrated(arr,i,j)){
                        len=Math.max(len,j-i+1);
                  }
             }
         }
         return len;
      }
     
      public static boolean isIntegrated(int[] arr, int left, int right){
          int[] newArr = Arrays.copyOfRange(arr, left, right+1);
          Arrays.sort(newArr);
          for(int i = 1; i<newArr.length; i++){
                  if(newArr[i-1] != newArr[i]-1){
                      return false;
                  }
          }
          return true;
      }
      
      
      public static void main(String[] args){
          
          int[] arr = new int[7];
          arr[0]=5;
          arr[1]=5;
          arr[2]=3;
          arr[3]=2;
          arr[4]=6;
          arr[5]=4;
          arr[6]=3;
    
         int x = getLIL1(arr);
         System.out.println(x);
          
      }
       
}

 

 

改进的方法:

  加速验证过程,前方高能!!!!!-------------------------------------------》》》》》》》》》

  判断一个数组是否可是可整合,

              如果     max-min+1= 元素个数  即为:6-2+1=5  那么这个数组就是可整合数组

 

废话不说多说!

package TT;


import java.util.HashSet;



public class test61 {
  
   public static int getLIL2(int[] arr){
       
        if(arr==null || arr.length==0){
            return 0;
        }
        
        int len = 0;
        int max =0;
        int min =0;
        HashSet<Integer> set = new HashSet<Integer>();
        for (int i = 0; i < arr.length; i++) {
             max = Integer.MIN_VALUE;
             min = Integer.MAX_VALUE;
             for(int j =i; j<arr.length; j++){
                 
                  if(set.contains(arr[j])){
                      break;
                  }
                  set.add(arr[j]);
                  max=Math.max(max, arr[j]);
                  min=Math.min(min, arr[j]);
                  
                  if ( max-min == j-i) {
                      len=Math.max(len, j-i+1);
                    
                }
                  
             }
             set.clear();
        }
       return len;
   }
    
    
    
    
    
   public static void main(String[] args){
       
       int[] arr = new int[7];
       arr[0]=5;
       arr[1]=5;
       arr[2]=3;
       arr[3]=2;
       arr[4]=6;
       arr[5]=4;
       arr[6]=3;
 
      int x = getLIL2(arr);
      System.out.println(x);
       
   } 
   
   
   
}

 

 其实重点在于:

   不重复的数组中 ,下表的值 i   和    j 之差  j-i   与最大值和最小值max 和 min 的差值 是有关系的 也有数目相关性

   用set集合获取到不重复的数组

   然后进行时刻的判断 更新最大值

 

       最内层for循环去做事情,用set去操作,做完了时候要清空一下set

       外层下次循环继续使用,同时下次使用时候要用 min max重新初始化 

        我们的核心是一直记录最大的长度,其他的是中间产物。

 

posted @ 2017-09-06 19:36 toov5 阅读( ...) 评论( ...) 编辑 收藏
DRM驱动架构浅析-上(DRM基础概要与U-Boot阶段驱动解析) 本文主要探讨了Rockchip平台的DRM显示驱动架构及其在U-Boot阶段的实现。 阅读详情

相关推荐

Shopee前端反爬三要素:x-sap-Ri、x-sap-Sec与af-ac-enc-dat深度解析

电商前端反爬机制本质是运行时环境可信验证,其核心在于动态生成的请求指纹、会话签名与行为加密载荷。这类机制不依赖静态Token,而是基于浏览器真实交互(如鼠标轨迹、页面可见性、时间精度)实时计算,体现JS运行时环境不可模拟性。技术价值在于将风控前移至客户端,大幅提升自动化绕过成本;典型应用场景包括商品价格监控、竞品数据采集与合规爬虫开发。本文聚焦Shopee实战案例,深入拆解x-sap-Ri(设备+行为哈希指纹)、x-sap-Sec(动态密钥签名)及af-ac-enc-dat(AES加密行为载荷)三大字段的生

weixin_29015127的博客 408

最长可整合子数组

先给出可整合数组的定义: 如果一个数组arr在排序之后,从最小值到最大值的顺序中,每相邻两个数之间差的绝对值都为1,则arr为可整合数组。 例如: arr = {5,3,4,6,2},再排序之后为:{2,3,4,5,6},排序后符合每相邻两个数之间差的绝对值都为1,所以arr是可整合数组。 给定一个整形数组arr,请返回其中长度最大的可整合子数组的长度。 [5,0,1,2,4,3,9],最长

lycommand的专栏 518

Android Profiler 帧率优化实战与性能调优

本文详细介绍了使用Android Profiler进行帧率优化与性能调优的实战方法。通过分析主线程状态、FPS曲线和渲染阶段耗时,精准定位卡顿根源,并提供减少过度绘制、优化绘制命令及改善资源使用的具体策略。文章结合电商、游戏等真实案例,帮助开发者有效解决卡顿问题,提升应用流畅度。

palm99的专栏 537

最长的可整合子数组的长度

先给出可整合数组的定义:如果一个数组在排序之后,每相邻两个数的差的绝对值都为1,或者该数组长度为1,则该数组为可整合数组。枚举每个子数组,然后对每个子数组进行排序,然后判断是否为可整合数组,完整代码如下。,符合每相邻两个数差的绝对值都为1,所以这个数组为可整合数组,给定一个数组。第二个条件:数组中的最大值和最小值的差值等于。如果满足上述两个条件,一定是可整合数组。, 请返回其中最大可整合子数组的长度。第一个条件:数组中的元素没有重复。暴力解法的时间复杂度是。的最大可整合子数组为。,数组中每个数都满足。

Practitioner 269

Apple 网页 SRP 登录系列文章(二):网页参数提取与会话初始化

本文深入解析了Apple网页SRP登录的第一个关键环节。文章首先指出Apple登录页面采用多层安全架构,包括跨域跳转机制和动态参数生成。重点介绍了四种关键参数(ServiceKey、SCNT、FrameId、ServiceNum)的提取技术,通过正则表达式和JSON路径解析从HTML脚本和HTTP头中获取。最后详细说明了会话初始化流程,包括访问初始页面和构建认证URL。这些技术细节揭示了Apple如何通过复杂机制确保登录过程的安全性。

Sayid_Des的专栏 1131

ABAP RAP 行为建模深入学习:从 Behavior Definition 到 Behavior Implementation 的完整实践指南

ABAP RAP开发指南:业务行为定义与实现 本文介绍SAP RAP框架中业务对象行为的开发方法: 分层设计 Behavior Definition声明业务能力(增删改查、校验、动作等) Behavior Implementation在ABAP类中编写具体逻辑 核心组件 使用BDL定义业务行为 通过FOR BEHAVIOR OF绑定行为池类(ABP) 在本地类实现校验/确定/动作逻辑 关键特性 支持managed/unmanaged两种实现模式 提供草稿表、并发控制等企业级功能 通过EML以别名访问实体 开

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 414

最长的可整合的子数组的长度

题目:先给出可整合数组的定义。如果一个数组在排序后,每相邻的两个数差的绝对值都为1,则该数组为可整合数组。例如,[5,3,4,6,2]排序之后为[2,3,4,5,6],符合每相邻的两个数差的绝对值为1,所以这个数组为可整合数组。给定一个整形数组arr,请返回其中最大的可整合数组的长度。例如,[5,5,3,2,6,4,3]的最大可整合数组为[5,3,2,6,4],所以返回5.思路:最大整合数组有一个...

G7S9R的专栏 466

RK3399平台开发系列讲解(内核入门篇)1.2、如何高效的阅读Linux内核设备驱动

内核开发在很大程度上并不是重新造“轮子”的过程,而是深入理解并尽量复用现有的内核设计框架,然后参照相似的功能模块去添加或改写某项需要的功能。在对内核整体框架以及某些子系统融会贯通以后,我们才有可能站在巨人的肩膀上去改进框架本身,实现自主创新。如果过分强调不必要的“自主创新”,可能会让内核的可维护性变差,最终结果反而得不偿失。 那么此次就分享就围绕如何高效的阅读内核驱动代码:

内核笔记 7342

最长无重复子数组

描述 给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。 子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组 示例1 输入: [2,3,4,5] 返回值: 4 复制说明: [2,3,4,5]是最长子数组 示例2 输入: [2,2,3,4,3] 复制返回值: 3 复制说明: [2,3,4]是最长子数组 示例3 输入: [9] 复制返回值:

搓搓那年时光静好 1957

Codex入门24-效率倍增秘籍(终极总结:10个让你开发速度翻倍的Codex高级技巧)

专栏收官之作!经过前23篇的系统学习,你已经掌握了 Codex CLI 的核心用法。本文浓缩10个实战验证的高级技巧:管道化提示词将复杂任务拆成递进指令链,模板化 SKILL.md 打造个人技能库,Shell 别名让操作快如闪电,多模型切换省钱又高效……这不是理论课,每个技巧都配有可直接运行的代码。掌握全部10招,构建你的 AI 开发工作流闭环,让开发速度真正翻倍!

yueyeguzhuo的专栏 191

ArcMap|使用模型构建器将kml文件批量转图层

参考:https://www.jianshu.com/p/6de18f846024 第一步:打开模型构建器,拖入kml转图层工具 第二步:插入文件迭代器 第三步:双击“迭代文件”,选择kml所在文件夹 第四步:将“File.kml”与“KML转图层”连接,点击“输入KML文件” 第五步:双击“KML转图层”,更改输出位置,输出数据名称改为%名称% 第六步:运行模型 得到结果: ...

个人学习笔记 3602

【搞定算法】最长的可整合子数组的长度

题目:最长的可整合子数组的长度。给定一个整型数组 arr,请返回其中最大可整合子数组的长度。例如:[5,5,3,2,6,4,3] 的最大可整合子数组为[5,3,2,6,4],所以返回 5。 先给出可整合数组的定义:如果一个数组在排序之后,每相邻两个数差的绝对值都为 1,则该数组为可整合数组。例如:[5,3,4,6,2] 排序之后为 [2,3,4,5,6],符合每相邻两个数差的绝对值都为 1,所...

Java学习 1266

Qt Installer Framework 简单使用

qt installer framework 简单使用

qq_42815643的博客 2576

【算法】【数组与矩阵模块】求最长可整合子数组和子数组的长度

求最长可整合子数组长度

qq_39760347的博客 367

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

程序员面试指南python_【Python程序员代码面试指南】最长的可整合子数组的长度?...

题目:先给出可整合数组的定义:如果一个数组在排序之后,每相邻两个数的差的绝对值都为1,或者该数组长度为1,则该数组为可整合数组。例如,[5, 3, 4, 6, 2]排序后为[2, 3, 4, 5, 6],符合每相邻两个数差的绝对值都为1,所以这个数组为可整合数组。给定一个数组arr, 请返回其中最大可整合子数组的长度。例如,[5, 5, 3, 2, 6, 4, 3]的最大可整合子数组为[5, 3,...

weixin_34663092的博客 205

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【中等】最长的可整合子数组的长度-Java:解法二

package live.every.day.ProgrammingDesign.CodingInterviewGuide.ArrayAndMatrix; import java.util.HashSet; /** * 最长的可整合子数组的长度 * * 【题目】 * 先给出可整合数组的定义。如果一个数组在排序之后,每相邻两个数差的绝对值都为1,则该数组为可整合数组。例如,[5,3,4,6,2] * 排序之后为[2,3,4,5,6],符合每相邻两个数差的绝对值都为1,所以这个数组为可整合数组。

了解➔熟悉➔掌握➔精通 235

【中等】最长的可整合子数组的长度-Java:解法一

package live.every.day.ProgrammingDesign.CodingInterviewGuide.ArrayAndMatrix; import java.util.Arrays; /** * 最长的可整合子数组的长度 * * 【题目】 * 先给出可整合数组的定义。如果一个数组在排序之后,每相邻两个数差的绝对值都为1,则该数组为可整合数组。例如,[5,3,4,6,2] * 排序之后为[2,3,4,5,6],符合每相邻两个数差的绝对值都为1,所以这个数组为可整合数组。

了解➔熟悉➔掌握➔精通 264

2021-08-22:定义什么是可整合数组:一个数组排完序之后,除了最左侧的数外,有arr[i] = arr[i-1]+1,则称这个数组为可整合数组,比如{5,1,2,4,3}、{6,2,3,1,5,

2021-08-22:定义什么是可整合数组:一个数组排完序之后,除了最左侧的数外,有arr[i] = arr[i-1]+1,则称这个数组为可整合数组,比如{5,1,2,4,3}、{6,2,3,1,5,4}都是可整合数组。返回arr中最长可整合子数组的长度。 福大大 答案2021-08-22: 可整合数组条件如下: 1.不重复。 2.【最大值】-【最小值】=个数-1。 时间复杂度:O(N^2)。 空间复杂度:O(N)。 代码用golang编写。代码如下: package main import (

福大大架构师每日一题 2万+

数组问题三

一 子数组最大累乘积 题目:给定一个 double 类型的数组 arr,其中的元素可正、可负、可 0,返回子数组累乘的最大乘积。 例如:arr = [-2.5,4,0,3,0.5,8,-1],子数组 [3,0.5,8] 累乘可以获得最大的乘积 12,所以返回 12。 子数组问题套路 在某种标准/条件下求子数组中最大/最小/最优的解法:在标准下,求解以每个 i 位置作为开头或者结尾的子数组的答案,那么全局的答案一定在其中。 分析: 本题求以每个位置 i 结尾的子数组的最大累乘积是多少,如果你每个位

sarracode的博客 411

《程序员代码面试指南》第八章 数组和矩阵问题 最长的可整合子数组的长度...

题目 最长的可整合子数组的长度 package com.lizhouwei.chapter8; import java.util.HashSet; import java.util.Set; /** * @Description: 最长的可整合子数组的长度 * @Author: lizhouwei * @CreateDate: 2018/5/7 21:02 * @Modify by: ...

weixin_34281537的博客 153

2023-07-27:最长可整合子数组的长度, 数组中的数字排序之后,相邻两数的差值是1, 这种数组就叫可整合数组。 给定一个数组,求最长可整合子数组的长度。

2023-07-27:最长可整合子数组的长度,数组中的数字排序之后,相邻两数的差值是1,这种数组就叫可整合数组。给定一个数组,求最长可整合子数组的长度。答案2023-07-27:算法maxLen的过程如下:1.检查输入数组是否为空,如果为空,则返回0,表示最长可整合子数组长度为0。2.初始化长度为1的最长可整合子数组长度为ans。3.创建一个空的set容器,用于记录数组中的元素是否已经存在。4.开始遍历输入数组,从start = 0开始。每次迭代,重置set为空。

福大大架构师每日一题 218

其他算法题目

其他算法题目划分数组最长可整合子数组长度 划分数组 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int[] arr=new int[n]; for(int i=0;i<n;++i) { arr[i]=scan.next

qq_43536978的博客 218

算法:数组最长问题

未排序数组累加和为指定值的最长长度: 哈希+前缀和,时间O(N) 哈希保存(sum,loc),已经遍历过的累加和及其最后位置。 未排序数组累加和为指定值的最长长度,额外要求正负数个数相同: 哈希+前缀和,时间O(N) 使用两个数组,一个原数组采用上面方法。 另一个数组将负数置为-1,正数置为1,则累加和为0为正负个数相同 未排序数组只有0和1,累加和为指定值的最长长度,且0和1个数相同: 哈希...

ShellDawn的博客 441

数组的子数组长度系列问题之四

文章目录最长的可整合子数组的长度题目代码不重复打印排序数组中相加和为给定值的所有二元组和三元组题目代码未排序正数数组中累加和为给定值的最长子数组长度题目代码未排序数组中累加和为给定值的最长子数组系列问题题目代码未排序数组中累加和小于或等于给定值的最长子数组长度题目代码 最长的可整合子数组的长度 题目 可整合数组的定义:如果一个数组在排序之后,每相邻两个数差的绝对值都为1,则该数组为可整合数组。如[...

lei_h11的博客 762
上一篇: 算法总结之 在行列都排好序的矩阵中找数
下一篇: 算法总结之 不重复打印排序数组中相加和为给定值的所有二元数组
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值