import java.util.ArrayList;
import java.util.List;
/**
* @author xnl
* @Description:
* @date: 2022/7/3 23:05
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
int[] A = {5,4,0,3,1,6,2};
System.out.println(solution.arrayNesting3(A));
}
/**
* 暴力搜索
* 不行,超时
* @param nums
* @return
*/
public int arrayNesting(int[] nums) {
int ans = 0;
for (int i = 0; i < nums.length; i++){
ans = Math.max(calculation(nums, i), ans);
}
return ans;
}
private int calculation(int[] nums, int begin){
List<Integer> list = new ArrayList<>();
while (!list.contains(begin)){
list.add(begin);
begin = nums[begin];
}
return list.size();
}
/**
* 根据官方给的题解,可以发现,其实在一个有效的结果集中,无论是从什么位置开始,只要经过的路线,下一次肯定不会再走一次,
* 所以可以避免重复计算
*
* @param nums
* @return
*/
public int arrayNesting2(int[] nums) {
int res = 0;
boolean[] visited = new boolean[nums.length];
for (int i = 0; i < nums.length; i++){
if (!visited[i]){
// 记录一下环口,如果到了环口退出
int begin = nums[i], count = 1;
while (begin != i) {
begin = nums[begin];
count++;
visited[begin] = true;
}
res = Math.max(res, count);
}
}
return res;
}
/**
* 借鉴官方答案,修改数组
* 遍历过的数组,把他的结果改为-1
* @param nums
* @return
*/
public int arrayNesting3(int[] nums) {
int res = 0;
for (int i = 0; i < nums.length; i++){
if (nums[i] != -1){
int start = nums[i], count = 1;
while (start != -1){
// 提前存储结果
int temp = start;
start = nums[start];
count++;
nums[temp] = -1;
}
res = Math.max(res, count);
}
}
return res;
}
}
相关推荐
告别ArcGIS小红叉:从‘无法验证登录信息’到成功连接在线资源的完整排错记录
本文详细记录了从Windows便签的网络错误到ArcGIS连接问题的完整排错过程。通过分析代理服务器、DNS配置和系统网络设置,解决了ArcGIS无法验证登录信息的问题,提供了实用的网络优化方案和技术排错思路。
【565. 数组嵌套】
利用nums中的元素大小在[0,n−1]之间」这一条件,我们可以省略vis数组,改为标记nums[i]=n,来实现和vis数组同样的功能。由于题目保证nums中不含有重复的元素,因此有向图中每个点的出度和入度均为1。时间复杂度O(n),其中n是数组nums的长度。时间复杂度O(n),其中n是数组nums的长度。空间复杂度O(1),我们只需要常数的空间保存若干变量。A中的元素大小在[0,N-1]之间。A中不含有重复的元素。...
从RADIUS服务器到AP:实战搭建一个小型WPA2-Enterprise测试环境(FreeRADIUS + 家用路由器)
本文详细介绍了如何从零搭建WPA2-Enterprise测试环境,使用FreeRADIUS服务器和家用路由器实现企业级WiFi认证。通过实战指南,包括证书生成、EAP-PEAP配置、OpenWrt路由器设置及故障排查,帮助网络工程师和爱好者掌握802.1X协议栈的实际应用。
565. 数组嵌套
题目详述 565. 数组嵌套 索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到并返回最大的集合S,S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]... 以此类推,不断添加直到S出现重复的元素。 示例 1: 输入:...
Mplus实战:三变量随机截距交叉滞后模型(RI-CLPM)语法详解与扩展
本文详细解析了Mplus中三变量随机截距交叉滞后模型(RI-CLPM)的构建原理与语法实现。通过将变量分解为稳定的个体间差异与动态的个体内波动,模型能更纯净地揭示多变量间的纵向交互影响。文章以工作压力、睡眠质量与工作满意度为例,提供了完整的语法模板、关键参数设置(如NOCOV命令、残差相关)及结果解读指南,帮助研究者避开常见误区,稳健分析复杂动态关系。
pandas教程:2012 Federal Election Commission Database 2012联邦选举委员会数据库
里面包含了支持者的名字,职业和雇主,地址,赞助金额。我们可以已经能想到如何切割、整理数据,来提取赞助者的统计数据,或提取宣传活动的模式,这里我们展示一些不同的分析方法。可以看到有些职业是同一种工作类型,指代的是同一个东西。这两个连续操作是分别独立执行的,一个结束后,另一个才开始。上,这里我是把数据集压缩成了ZIP格式,解压后能正常导入)。我觉得也有必要好好了解一下,这个网站做了很好的讲解,),所以我们最好添加这样的信息。这样的情况,即把两个索引操作连在一起。,发现映射关系被正常执行了,所以这里的。
【LeetCode】565. Array Nesting(数组嵌套)
【LeetCode】565. Array Nesting(数组嵌套)题目链接:https://leetcode.com/problems/array-nesting/description/难度:中题目描述:A zero-indexed array A of length N contains all integers from 0 to N-1. Find and return the long...
电源完整性分析:PDN阻抗与去耦电容设计——目标阻抗计算与电容选型深度实战
摘要:随着嵌入式处理器主频突破 GHz、多核架构普及,电源完整性(Power Integrity, PI)已成为高速 PCB 设计中不可忽视的关键环节。本文从 PDN(电源分配网络)阻抗模型出发,系统讲解目标阻抗计算方法、去耦电容选型策略、反谐振抑制技术,并结合 STM32F4 核心板的完整设计实例,提供一套可落地的电源完整性工程实践方案。电源完整性设计是一项系统工程,需要从目标阻抗计算电容选型反谐振抑制PCB 布局目标阻抗是设计的起点,由电源电压、纹波要求和瞬态电流决定去耦电容。
刷题精选:力扣565.数组嵌套
那么我们以0下标开始访问,0中元素为1,下一个访问下标1,1中元素为2,下一个访问2下标,不断重复,直到最后一个6下标元素为0,形成一个环,大小为数组大小,这种情况是环最长的,那么如果数组元素乱序排列,可能形成环更容易,例如题目中给的示例1A=[5,4,0,3,1,6,2]找到最大的集合S并返回其大小,其中S[i]={A[i],A[A[i]],A[A[A[i]]],…假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]…...
NVIDIA Isaac Sim 联合 VS Code 开发调试环境配置
在 Visual Studio Code (VS Code) 中打开 Isaac Sim 软件包主文件夹,即可打开该工作区。注意建议在学习教程和示例时使用 Visual Studio Code。另请参见有关 VS Code 工作区的详细信息,请参阅 Visual Studio Code (VS Code) 文档。
在 SAP 中启用应收/应付“代扣税(Withholding Tax)”功能,本质上是激活并配置“扩展代扣税(Extended Withholding Tax)”模型
摘要:SAP中启用应收/应付代扣税功能需完成3个层级12个核心步骤:1)全局激活公司代码代扣税功能;2)配置代扣税规则、税率和科目,包括定义税种类型、代码、总账科目等;3)在供应商/客户主数据中关联代扣税设置。完成后系统可在发票或付款环节自动计算并过账代扣税,支持多税种并行计算和税率年度调整,最终生成税务报表。常见问题排查需检查公司代码激活状态和主数据配置。(149字)
leetcode:565. 数组嵌套
不断地执行i=A[i],每次取出A[i],直到出现重复,显然,这会形成循环。共三组循环,可以把它们拆分开来,变成下图的样子。问题:为什么一定会在入口处成环。
手把手教你学Simulink--基于飞行控制与稳定性的场景实例:多旋翼无人机在风扰动下的稳定性分析
本文介绍了使用Simulink仿真多旋翼无人机在风扰动下稳定性的方法。通过构建包含飞行器动力学模型、PID控制系统和环境模拟模块的仿真系统,分析了无人机在不同风速条件下的飞行性能。详细说明了从创建模型、设置动力学方程、设计PID控制器到添加风扰动模型的完整流程,并提供了性能评估指标。该方法可用于验证控制系统有效性,优化飞行稳定性参数,为无人机控制系统的设计和调试提供参考。
Leetcode 565:数组嵌套
题目描述 索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到并返回最大的集合S,S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]...以此类推,不断添加直到S出现重复的元素。 示例1: 输入: A = [5,4,...
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
LeetCode刷题实战565:数组嵌套
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !今天和大家聊的问题叫做数组嵌套,我们先来看题面:https://leetcode-cn.com/problems/array-nesting/You are given an inte...
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
LeetCode打卡:565. 数组嵌套
索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], … }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]… 以此类推,不断添加直到S出现重复的元素。 示例 1: 输入: A = [5,4,0,3,1,6,2] 输出: 4 解释: A[0] = 5, A[1] = 4, A[2] = 0, A[3] = 3, A[
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
C练题笔记之:Leetcode-565. 数组嵌套
Leetcode-565. 数组嵌套 做题笔记
leetcode: 565. 数组嵌套(dfs)
链接:https://leetcode-cn.com/problems/array-nesting/ 记录已访问过的节点,dfs搜索嵌套的最大深度即可。 java代码: class Solution { public int arrayNesting(int[] nums) { int [] visited = new int [nums.length]; int max = 0; for(int i = 0;i<nums.length;i++)
解题思路-LeetCode第565题:数组嵌套
解题思路-LeetCode第565题:数组嵌套 题目描述: 索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], … }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]… 以此类推,不断添加直到S出现重复的元素。 示例 1: 输入: A = [5,4,0,3,1,6,2] 输出: 4 解释: A[0] = 5, A[
LeetCode题练习与总结:数组嵌套--565
本文详细介绍了如何解决数组最长循环链表问题,通过遍历数组并标记已访问元素,找到最大集合的大小。总结了代码实现、时间复杂度分析及涉及的关键知识点,为解题提供了清晰指导。
编程实现:leetcode_565 数组嵌套
索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到并返回最大的集合S,S[i] = {A[i], A[A[i]], A[A[A[i]]], … }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]… 以此类推,不断添加直到S出现重复的元素。 这道题我刚开始的思路是: 将得到的S的元素保存起来,然后每得...
图解LeetCode——565. 数组嵌套(难度:中等)
创建一个用户记录环形链表行走路线的数组boolean[]mark,默认位置都是false,如果行走到哪个元素上,则将下标处的值修改为true,这样,如果发现。【解释】A[0]=5,A[1]=4,A[2]=0,A[3]=3,A[4]=1,A[5]=6,A[6]=2.其中一种最长的S[K]S[0]={A[0],A[5],A[6],A[2]}={5,6,2,0}那么我们可以得出一个结论,就是我们通过对数组的遍历,最终会产生1个或者N个环形链表。......
LeetCode第565题数组嵌套
题目来源 题目描述 索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], … }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]… 以此类推,不断添加直到S出现重复的元素。 示例 1: 输入: A = [5,4,0,3,1,6,2] 输出: 4 解释: A[0] = 5, A[1] = 4, A[2] = 0, A[
leetcode.565.数组嵌套
Leetcode 565 数组嵌套 深度优先算法
六月集训第十五日-深度优先
dfs
389



被折叠的 条评论
为什么被折叠?



