java数据结构与算法刷题-----LeetCode565. 数组嵌套

八年复盘:2017欢聚时代Android校招笔试全解析 Android开发基础是移动端技术栈的基石,而校招笔试正是检验这些核心知识的最佳试金石。从Java集合到Handler消息机制,从Binder IPC到性能优化,这些底层原理贯穿于Android应用开发的始终,也是直播等高实时性场景的技术保障。深入理解这些概念,不仅有助于应对面试中的高频考点,更能为工程实践中的卡顿排查、内存治理提供理论支撑。随着行业向精细化发展,无论是传统App开发还是车载、音视频等新方向,扎实的底层功底仍是技术成长的关键。本文以2017年欢聚时代Android工程师校招C卷为样本,回顾其 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

在这里插入图片描述

解题思路
  1. 将数组抽象成链表,效果如下图所示
    在这里插入图片描述
  2. 题目的要求,就可以理解为,寻找最长的链表,返回其长度。
  3. 我们只需要长度,所以用count遍历,来记录每个链表的长度。我们只需要从起点开始走,每走一步,count+1,最终回到起点后,就得到了链表的长度。

但是,如何知道我们回到起点了呢?我们可以想象一下,我们每走一步,就在这个结点上插上一个旗子。这样的话只有两种结果,一种是我们再次看到旗子,就说明我们饶了一圈,回到了起点。或者当前链表不是一个循环链表,我们无法回到起点,最后完全遍历完链表。
在这里插入图片描述
在这里插入图片描述

  1. 完成后,我们可能还没有遍历完整个数组,但是其中的一个循环链表已经遍历完成,并且全部设置为-1.那么我们只需要再找到下一个不是-1的结点,重复第3步即可。
代码:时间复杂度O(n) 空间复杂度O(1)

在这里插入图片描述

class Solution {
    public int arrayNesting(int[] nums) {
        int res = 0;
        for (int i = 0;i < nums.length;i ++) {
            if (nums[i] != -1) {//已经访问过的结点,设置为-1,如果当前结点是-1,那么跳过这次遍历
                int start = i;//记录起点位置
                int count = 0;//记录从起点开始,再次回到起点的步数
                while (nums[start] != -1) {//只要不是-1,就说明还没有绕完一圈,没有回到起点
                    int x = nums[start];//获取下一步往哪里走
                    nums[start] = -1;//访问过的结点,设置为-1
                    start = x;//起点后移
                    count ++;//每走一步,步数count+1
                }
                if (count > res)//如果当前这个循环的步数,比已经记录在res的更高
                    res = count;//就保留更高的
            }
        }
        return res;//返回结果
    }
}
小红书安卓秋招笔试复盘:手撕代码与高频考点精讲 在Android客户端开发中,Activity生命周期、Handler消息循环、RecyclerView列表优化与Bitmap内存管理是公认的核心技术栈,它们共同决定了应用的流畅度、稳定性与用户体验。理解这些基础原理,并能在工程实践中灵活运用,是进阶高级工程师的必经之路。随着AGP 8、R8等构建工具链的普及,现代Android开发更是对代码压缩、资源优化与版本兼容提出了更高要求。这些技术不仅广泛应用于日常业务开发,也是大厂笔试和面试中区分候选人技术深度的关键。本文以小红书秋招第三批Android岗笔试为切 阅读详情

相关推荐

UE5 VlcMedia 插件编译与流媒体播放实战

本文详细介绍了在虚幻引擎5中编译并集成VlcMedia插件以解决流媒体播放难题的实战指南。针对UE5不再默认支持Win32 API导致的编译错误,文章提供了核心的构建配置文件修改步骤,并指导如何启用插件、创建VLC媒体播放器,最终成功播放如.m3u8等格式的网络直播流或点播视频。

weixin_29013129的博客 339

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万+

告别密码本!用Windows NPS给华为/华三交换机做Radius认证,SSH登录更安全

本文详细介绍了如何利用Windows NPS实现华为/华三交换机的Radius认证,提升SSH登录安全性。通过集中化管理、精细化控制和完整审计追踪,企业可告别传统密码本,大幅提升网络设备管理效率。文章包含NPS服务部署指南、交换机配置详解及调试技巧,助力企业构建安全高效的统一认证体系。

weixin_42549723的博客 420

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: 输入:...

hch977的博客 348

GMSL Strapping Pins CFG0/CFG1 应用

如果 0x13.bit3 = 0, 则是链路没有 Locked,需要去排查下具体问题(通常是工作模式配置问题)如果遇到 Link 无法建立(Locked),电源没有问题的情况下,多半是加串器和解串器的工作模式不匹配。芯片在上电时,会检测这两个管脚的电压,根据不同的电压值,芯片进入到不同的工作模式。一对加串器和解串器,只要工作模式匹配得当,Link Locked,便能够正常工作。ADI 已经充分考虑了用户的需求,尽可能的降低的芯片的使用和配置复杂度。GMSL 的解串器也是类似的配置,具体请参考对应的规格书。

iStoneWalker的博客 1273

攻击时间控制的动态逆三维制导律(源代码)

%参考文献:《攻击时间控制的动态逆三维制导律》,哈尔滨工程大学学报,2010 %编程难点:视线坐标系与参考坐标系间的转换关系 一、采用本文方法结果 二、偏航通道采用增广比例导引律

算法小站 2393

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

YOLOv9分割改进 ,YOLOv9分割改进主干网络为华为EfficientNet,助力涨点

EfficientNet论文中研究了卷积网络的缩放和,并证明对深度,宽度和分辨率复合缩放的重要性,因此精度和效率更好。为了阐述相关的原理,我们提出了简单有效的复合缩放方法,使得模型缩放具有一定设计准则,同时兼顾了模型的效率。我下文将 YOLOv9 分割模型改进主干网络为 EfficientNet 融合网络结构。论文地址代码地址下文都是手把手教程,跟着操作即可添加成功把环境配置好,数据集处理好,训练基本能成功,创作不易,请帮忙点一个爱心,关注我,带你不挂科!

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 939

LeetCode题练习与总结:数组嵌套--565

本文详细介绍了如何解决数组最长循环链表问题,通过遍历数组并标记已访问元素,找到最大集合的大小。总结了代码实现、时间复杂度分析及涉及的关键知识点,为解题提供了清晰指导。

一直学习永不止步 956

ICLR 2025 | MambaPEFT: 探索针对Mamba的参数高效微调方法

通过利用海量数据构建大型模型,基于Transformer的模型生态系统已逐步确立。参数高效微调(PEFT)是一项至关重要的技术,它能以最低成本将这些模型应用于下游任务,同时实现高效的性能表现。最近,基于状态空间模型(SSM)的Mamba模型作为Transformer的潜在替代方案受到了广泛关注。尽管已经提出了许多基于Mamba的大规模模型,但如何高效地将预训练的Mamba模型应用于下游任务仍有待研究。在本文中,作者对适用于Mamba的PEFT方法展开了探索性分析。

小白学视觉 328

AES-128-CMAC:背景、汽车应用、CAPL 实现与开源工具验证

本文详解车载诊断中AES-128-CMAC算法的原理与应用,涵盖其在UDS安全访问、刷写鉴权、SecOC认证及密钥派生中的核心作用。结合真实汽车电子场景,提供纯CAPL实现代码与测试脚本,并通过pycryptodome进行逐字节验证,确保算法正确性。全程基于CANoe实测数据,可直接用于HIL环境复现,助力开发者高效落地汽车网络安全方案。

蚂蚁小兵 119

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++)

Gomamon的博客 207

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

数据结构——leetcode(数组与矩阵)【java】

数据结构——leetcode(数组与矩阵)【java】leetcode-242-有效字母异位词 leetcode-242-有效字母异位词 力扣-242 题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词 示例: 输入: s = “anagram”, t = “nagaram” 输出: true 输入: s = “rat”, t = “car” 输出: false 思路:可以用hashmap存储,由于是字符串,只有26位,可以用数组来储存。 public boolean i

weixin_44952377的博客 825

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

精雕软件(JDpaint) 5.5 绿色版

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

Leetcode 第565,583,633,646,647,650,665,667,669,677题(Java解法)

Java解leetcode,助力面试之中等10道题(九)第565题 数组嵌套解题思路代码第583题 两个字符串的删除操作解题思路代码第633题 平方数之和解题思路代码第646题 最长数对链解题思路代码第647题 回文子串解题思路代码第650题 只有两个键的键盘解题思路代码第665题 非递减数列解题思路代码第667题 优美的排列 II解题思路代码第669题 修剪二叉搜索树解题思路代码第677题 键值映射解题思路代码 第565题 数组嵌套 示例 1: 输入 输出 intervals = [[1,

qq_42417189的博客 830

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LeetCode 565——Array Nesting

A zero-indexed array A of length N contains all integers from 0 to N-1. Find and return the longest length of set S, where S[i] = {A[i], A[A[i]], A[A[A[i]]], ... } subjected to the rule below. Suppos...

CrazyOnes的博客 357

LeetCode题目(java)

二叉树 第94题 二叉树的中序遍历

LiuXiaoXueer的博客 421

快速突破面试算法之数组与矩阵篇

一、前言:什么是数组与矩阵

qq_40262372的博客 454

爱奇艺Android校招面试:从Handler到性能优化的核心考点复盘

在Android开发中,消息驱动机制是系统运行的基石,Handler作为线程通信的核心组件,其背后的Looper、MessageQueue与同步屏障原理,直接决定了开发者能否深入理解系统行为。与此同时,性能优化始终是工程实践中的关键能力,无论是ANR排查、布局层级精简还是Bitmap内存管理,都考验着开发者对系统底层机制的掌握程度。这些技术素养不仅在日常开发中决定应用质量,更是大厂校招和面试中高频考察的焦点。从消息循环到View绘制,从AMS调度到R8混淆,系统地掌握这些核心知识,能够帮助开发者构建完整的A

cmff98425的博客 346

android 面试题

ContextImpl.startActivity → Instrumentation.execStartActivity → AMS.startActivity → 校验权限、创建 ActivityRecord、Pause 当前 Activity → ApplicationThread.scheduleTransaction → ActivityThread.H → LaunchActivityItem → performLaunchActivity(创建 Activity、调用 onCreate)。

qq_25657125的博客 398

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 301

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 328

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 520

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 351

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 555
上一篇: 考研:数学二做题套路
下一篇: java数据结构与算法刷题-----LeetCode769. 最多能完成排序的块
ydenergy_殷志鹏
博客等级 码龄7年 5887粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值