​LeetCode刷题实战565:数组嵌套

Java实现 LeetCode 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: 输入: A = [5,4,0,3,1,6,2] 输出: 4 解释: A[0] = 5, A[1] = 4, A[2] = 0, A[3] = 3, A[4] = 1, A[5] = 6, A[6] = 2. 其中一种最长的 S[K] 立即下载

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 数组嵌套,我们先来看题面:

https://leetcode-cn.com/problems/array-nesting/

You are given an integer array nums of length n where nums is a permutation of the numbers in the range [0, n - 1].

You should build a set s[k] = {nums[k], nums[nums[k]], nums[nums[nums[k]]], ... } subjected to the following rule:

The first element in s[k] starts with the selection of the element nums[k] of index = k.

The next element in s[k] should be nums[nums[k]], and then nums[nums[nums[k]]], and so on.

We stop adding right before a duplicate element occurs in s[k].

Return the longest length of a set s[k].

索引从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出现重复的元素。

示例                         

输入: A = [5,4,0,3,1,6,2]
输出: 4
解释: 
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}

解题

https://www.cnblogs.com/wangzaiguli/p/15133995.html

1:从题意可得,某些数字可以组成一个环,并且因为没有重复的数字,所以每个元素只能在一个环之中。求组成环最多的元素的个数。

2:创建一个长度为N的数组arr,来记录每个数字是否访问到了,没有访问到用初始值0 表示,访问倒了就用 1来标记。

3:每个数字都必定且仅在一个环中。所以遍历数组中的值,找到最大的环的长度即可。

class Solution {
    public int arrayNesting(int[] nums) {
  int length = nums.length;
        int[] arr = new int[length];
        int max = 0;
        int num;
        int value;
        for (int i = 0; i < length; i++) {
            if (arr[i] != 0) {
                continue;
            }
            arr[i] = 1;
            num = nums[i];
            int c = 1;
            while (arr[num] == 0) {
                value = nums[num];
                arr[num] = 1;
                num = value;
                c++;
            }
            max = Math.max(max, c);
        }
        return max;
    }
}

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

上期推文:

LeetCode1-560题汇总,希望对你有点帮助!

LeetCode刷题实战561:数组拆分 I

LeetCode刷题实战562:矩阵中最长的连续1线段

LeetCode刷题实战563:二叉树的坡度

LeetCode刷题实战564:寻找最近的回文数

4bf001aa7aa67c07ba29539de8f52b49.png

Leetcode 565.数组嵌套(Array Nesting) Leetcode 565.数组嵌套 1 题目描述(Leetcode题目链接)   索引从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出现重复的元素。 输入: A = [5,4,0,3,1,6,2] 输出: 4 解释: A[0] = 5, A[1] = 4, A[2] = 0, A[3] = 3, A[4] = 1, A[5] = 立即下载

相关推荐

实现自动打包py及替换pyinstaller --add-data参数的方法

实现自动打包py及替换pyinstaller --add-data参数的方法

isS_MK_GmbH的博客 3468

LeetCode 565. 数组嵌套(图、环、连通块)

【代码】LeetCode 565. 数组嵌套(图、环、连通块)

记录一些刷过的题并分享学习心得 529

PIPE Interface解析之PIPE SerDes/Original架构

PIPI Interface;SerDes架构;Original架构;PHY Tx结构;PHY Rx结构;

weixin_45176819的博客 2606

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...

zrh_优快云的博客 410

SystemVerilog实战:AXI Stream协议从零搭建(附完整代码解析)

本文详细介绍了如何使用SystemVerilog从零搭建AXI Stream协议,包括核心信号解析、接口设计、主从设备实现及验证环境构建。通过完整的代码示例和工程实践技巧,帮助开发者掌握AXI Stream在FPGA/ASIC设计中的高效数据传输方法,特别适合视频处理和网络数据传输等应用场景。

weixin_29207439的博客 360

Retinanet训练自己的数据(2):模型准备

  在上一篇博客中,我们已经处理好了模型需要的数据集,下一步就是准备模型去训练数据。这里提醒一句,在制作数据时,最好将训练集和测试集人为分开。像Google tensorflow API,在制作数据时可以按比例自动生成,但是在上一篇文章中产生的数据(annotation.csv )其实都是用来训练的,如果你把自己的数据集全都转换了,那么恭喜你,最后你会发现没有数据集去测试了。   下面开始模型准...

mingyang_wang的博客 5884

LeetCode 数组嵌套(图解)

索引从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] 输出...

hestyle的博客 847

基于RK3562J开发板的MCP2518FD CAN-FD控制器驱动适配与测试指南

本文详细介绍了在RK3562J开发板上适配MCP2518FD CAN-FD控制器驱动的完整流程。内容涵盖内核驱动配置、设备树修改、编译烧录以及实际通信测试,重点分享了调试方法,旨在帮助开发者快速为嵌入式系统扩展高速CAN-FD通信能力,适用于汽车电子、工业控制等场景。

jenkins8butler的博客 495

LeetCode-【数组】-数组嵌套

索引从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...

代码屋-CODE HOUSE 498

【零基础入门unity游戏开发——unity通用篇12】导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 760

2026最新YOLO26改进:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

针对YOLO26模型改进痛点,本专栏整理200+实战验证方法,覆盖卷积层、注意力机制等核心模块。 每种方法含原理、性能分析、改进路径及实操流程,代码可直接运行,快速提升模型效果,性价比超高。

魔改工程师的博客 1万+

刷题精选:力扣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]]]…...

bit_zhy的博客 370

OpenCloudOS9操作系统搭建Confluence8.2.1+Jira企业级WIKI

Atlassian Confluence是一个专业的企业知识管理与协同软件,可用于构建企业wiki

背锅神童的博客 1022

LeetCode 565. 数组嵌套

1. 题目 索引从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,

Michael是个半路程序员 1682

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Leetcode 565. 数组嵌套 C++

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出现重复的元素。 示例: 输入: A = [5,4,0,3,1,6,2] 输出: 4 解释: A[0] = 5, A[1] = 4, A

weixin_43750513的博客 336

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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[

LiuXiaoXueer的博客 217

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

leetcode565数组嵌套C++

每日一题

sakeww的博客 493

解题思路-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[

weixin_48153141的博客 260

【LeetCode】565. 数组嵌套(js 实现)

1、题目 565. 数组嵌套 - 力扣(LeetCode) (leetcode-cn.com) 2、实现 (1)思路 每一个元素都尝试嵌套搜索,每搜索一个就让统计长度+1。 同时访问过的元素都覆盖为-1作为标记,代表访问过了,减少重复访问。 每一个位置上能搜索最深的嵌套深度和前序的maxLen作比较,取最大的。 最后遍历完一遍数组,maxLen就对应最大集合的长度了,即为所求。 (2)代码 /** * @param {number[]} nums * @return {number}.

在热爱技术的路上一直前行。 593

leetcode 565. Array Nesting

A zero-indexed array A consisting of N different integers is given. The array contains all integers in the range [0, N - 1]. Sets S[K] for 0 S[K] = { A[K], A[A[K]], A[A[A[K]]], ... }. Sets S

淡然坊 1962

leetcode:565. 数组嵌套

不断地执行i=A[i],每次取出A[i],直到出现重复,显然,这会形成循环。共三组循环,可以把它们拆分开来,变成下图的样子。问题:为什么一定会在入口处成环。

OceanStar的博客 184

( 数组和矩阵) 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出现重复的元素。

weixin_43412762的博客 541
上一篇: 用了五年 VS Code ,我决定换成 JetBrains…
下一篇: 警告!别再使用 TIMESTAMP 作为日期字段~
编程IT圈
博客等级 码龄6年 1130粉丝 544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值