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

LeetCode 3396 题解

题解

范围允许暴力

先上图解

拿以下示例举个例子

[1,2,3,4,2,3,5,7]

当i=0时,set集合添加值1
当i=1时,set集合添加值2
当i=2时,set集合添加值3
当i=3时,set集合添加值4
当i=4时,set集合添加值2时发现我们在i=1时已经添加过了,所以会返回false,那我们就在这里设一个条件来改变状态移除当前set集合并记录下来一次,这里我设置值setNum自增
然后就是改变i的值因为是移除三个元素所以我们需要重新在第三个值后遍历也就是从i=3往后遍历
而i的值与setNum也有关,i = setNum * 3 - 1,但是也得防止i越界所以要判断是否可以使得i值成立不大于n(即数组的长度),不然直接返回setNum

class Solution{
	public int number(int[] nums){
		Set<Integer> set = new HashSet<>();
		int n = nums.length;
		int setNum = 0;
		for(int i=0;i<n;i++){
			if(!set.add(nums[i])){
				setNum++;
				if((3*setNum)>=n){
					return setNum;
				}else{
					i = 3*setNum-1;
				}
				set.clear();
			}
		}
		return setNum;
	}
}

相关文章:

  • 安装vllm
  • 【mllm】——x64模拟htp的后端无法编译debug
  • MySQL深分页问题
  • 【Code】《代码整洁之道》笔记-Chapter11-系统
  • Cuto壁纸 2.6.9 | 解锁所有高清精选壁纸,无广告干扰
  • 单细胞多组学及空间组学数据分析与应用
  • 《系统分析师-浏览试卷(一)总结》
  • 元生代品牌建设:平台实现工作流(comfyui)创建与技术文档说明
  • CVE-2025-32375 | Windows下复现 BentoML runner 服务器远程命令执行漏洞
  • JavaScript:基本语法
  • 电脑的usb端口电压会大于开发板需要的电压吗
  • 【从零开始学习JVM | 第二篇】HotSpot虚拟机对象探秘
  • ai-warp 开源的Platformatic Stackable 与 AI 服务交互
  • 快速idea本地和推送到远程仓库
  • .net 使用笔记
  • 【DDR 内存学习专栏 1. -- DDR 内存带宽与 CPU 速率】
  • 【Hadoop入门】Hadoop生态之Oozie简介
  • windows sc 创建删除服务
  • Java设计模式之享元模式:从入门到架构级实践
  • 断链保护装置常见故障及解决方法
  • 饮水机企业网站模板/免费推广软件工具
  • 网站开发流程有几个阶段/百度经验官网首页
  • 网站缩略图存哪里好/seopeixun com cn
  • 北京网站建设要多少钱/好的搜索引擎推荐
  • 手机网站模版免费下载/seo博客大全
  • 旅游网站源码 wordpress模板 v1.0/2023年国家免费技能培训