栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

leetcode565数组嵌套C++

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode565数组嵌套C++

目录
  • 1.链接:
  • 2.问题描述,示例,和提示:
  • 3.代码:
  • 4.题目解析:
  • 5.代码解析:

1.链接:

链接: 565. 数组嵌套

2.问题描述,示例,和提示:

3.代码:
class Solution {
public:
    int arrayNesting(vector& nums) {
        int ret = 0;
        for(int i = 0;i
            int now = 0;
            while(nums[i]
                int num = nums[i];
                nums[i]=nums.size();
                i = num;
                now++;
            }
            ret = max(now,ret);
        }
        return ret;
    }
};
4.题目解析:

给定一个数组nums
按照题目给定的方式,
我们可以看作,这个数组里面一定有很多的环,这些环不会相交
这些环里面的数据个数[1,nums.size()]之间
也就是当你从一个位置开始的时候,一定可以按照题目给定的方式回到原来的起点

如果上面的文字看不懂,建议看一下这个视频
链接: 链接在这里

5.代码解析:

1.我们从头开始遍历

2.开始的元素经过遍历回到自己,此时将路径上所有元素已经遍历一遍了

3.再次遍历数组的时候,如果这个元素在以前经过遍历的时候遍历过一遍,那么就不需要再从这个元素开始,然后遍历了,

4.所以开始经过遍历的时候,我们每遍历一次就将这个元素置为终止元素。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号