当前位置: 首页 > ops >正文

牛客:最长无重复子数组

牛客:最长无重复子数组

  • 题目
  • 思路
  • 代码

题目

给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。
子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组

思路

这道题的思路其实是很简单的我们只需要解决一个问题就可以了也就是如何判断是否有元素重复。虽然是问题但是也很好解决使用哈希表即可。所以整体的思路就是我们使用一个循环确定第一个数然后在里面嵌套一个循环来插入不重复的元素到数组中。在遇到重复的元素或者没有元素的时候退出即可然后判断数组的大小是否大于length(length是我们定义的一个整数来存储最长的数组大小)。之后再将哈希表和数组清空继续第一层循环即可。

代码

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param arr int整型vector the array* @return int整型*/int maxLength(vector<int>& arr) {// write code herevector<int> res;int length = 0;unordered_set<int> us;//第一层循环//确定第一个数for(int i = 0 ;i < arr.size();i++){res.push_back(arr[i]);us.insert(arr[i]);int j = i+1;//直到遇到重复的元素或者没有元素while(!us.count(arr[j]) && j < arr.size()){res.push_back(arr[j]);us.insert(arr[j]);j++;}if(res.size() > length){length = res.size();}us.clear();res.clear();}return length;}
};
http://www.xdnf.cn/news/15988.html

相关文章:

  • 西门子 S7-1500分布式 I/O通信 :PROFINET IO 与 PROFIBUS DP核心技术详解(上)
  • Axios Token 设置示例
  • 洛谷刷题7..22
  • 《计算机“十万个为什么”》之 MQ
  • 图像基础:从像素到 OpenCV 的入门指南
  • Kafka单条消息长度限制详解及Java实战指南
  • 基于python django深度学习的中文文本检测+识别,可以前端上传图片和后台管理图片
  • 更具个性的域名:解锁互联网多元价值的钥匙
  • 【Godot4】工具栏组件ToolBar
  • 金仓数据库风云
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的实习管理系统(附源码+数据库+毕业论文+项目部署视频教程+项目所需软件工具)
  • c练习-c基础
  • 【计算机网络】第五章:传输层
  • 查看 iOS iPhone 设备上 App 和系统运行时的实时日志与崩溃日志
  • 单片机学习笔记.单总线one-wire协议(这里以普中开发板DS18B20为例)
  • 【测试开发】---Bug篇
  • 同步本地文件到服务器上的Docker容器
  • day60-可观测性建设-全链路监控各种客户端
  • 基于 Vue,SPringBoot开发的新能源充电桩的系统
  • MSTP技术
  • 4.组合式API知识点(2)
  • 微算法科技(NASDAQ: MLGO)探索优化量子纠错算法,提升量子算法准确性
  • Unity之C# 脚本与Unity Visual Scripting 交互
  • linux初识网络及UDP简单程序
  • 如何给手机充电才不伤电池?
  • css3地球转动模型(动态数据)
  • 快手视觉算法面试30问全景精解
  • spring事务?
  • uniapp 报错 Not found ... at view.umd.min.js:1的问题
  • Vue3 学习教程,从入门到精通,Vue3 循环语句(`v-for`)语法知识点与案例详解(13)