首页 > 其他分享 >数组中重复的数据

数组中重复的数据

时间:2024-01-30 23:13:20浏览次数:29  
标签:示例 重复 元素 List int 数组 数据

给定一个整数数组 a,其中1 ≤ a[i] ≤ nn为数组长度), 其中有些元素出现两次而其他元素出现一次

找到所有出现两次的元素。

你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?

示例:

输入:
[4,3,2,7,8,2,3,1]

输出:
[2,3]
public List<Integer> findDuplicates(int[] nums) {
	List<Integer> res = new ArrayList<>();

	for(int i=0;i<nums.length;i++){
		if(nums[i] != nums[nums[i]-1]){
			swap(nums,i,nums[i]-1);
			i--;
		}
	}

	// 与 448 题不同之处
	for(int i=0;i<nums.length;i++){
		if(nums[i] !=i+1){
			res.add(nums[i]);
		}
	}
	return res;
}

private void swap(int[] nums,int i,int j){
	int tmp = nums[i];
	nums[i] = nums[j];
	nums[j] = tmp;
}

参考:

标签:示例,重复,元素,List,int,数组,数据
From: https://www.cnblogs.com/i9code/p/17998188

相关文章

  • 找到所有数组中消失的数字
    448.FindAllNumbersDisappearedinanArray(Easy)给定一个范围在1≤a[i]≤n(n=数组大小)的整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在[1,n]范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成......
  • 寻找重复数
    287.FindtheDuplicateNumber(Medium)给定一个包含n+1个整数的数组nums,其数字都在1到n之间(包括1和n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例1:输入:[1,3,4,2,2]输出:2示例2:输入:[3,1,3,4,2]输出:3说明:不能......
  • SpringBoot自定义注解+反射实现 excel 导入的数据组装及字段校验
    本次给大家带来的SpringBoot中通过自定义注解+反射实现excel导入数据组装及字段校验的实现方式。这种实现方式其实是很普通、常规的方法,但很多同学在开发过程中,可能却不太容易想到他。当然我也是众多同学中的一员。1背景在前段时间的开发工作中,接手了一个很简单,很普通的开发任务。......
  • 在@KafkaListener启动之前需要做数据的预加载,该在Spring生命周期的哪个阶段做这个事情
    背景说明1、在Spring中消费Kafka数据时,最便捷的方法就是给方法加@KafkaListener注解。在数据消费逻辑中,需要先把一些配置信息预加载到内存中。有同事就提了一个问题:如果保证在消费者执行前,预加载数据的代码一定能执行完?也就是说,要等待数据预加载完成之后,再执行消费逻辑。大部分......
  • openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表
    openGauss学习笔记-211openGauss数据库运维-高危操作一览表各项操作请严格遵守指导书操作,同时避免执行如下高危操作。211.1禁止操作表1中描述在产品的操作与维护阶段,进行日常操作时应注意的严禁操作。表1禁用操作操作名称操作风险严禁修改数据目录下文件名,权限,......
  • 数据库之TiDB基础讲解
    目录1TiDB1.1引言1.2TiDB介绍1.3系统架构1.3.1TIDBServer1.3.2PDServer1.3.3TIKVServer1.3.4TiKV如何不丢失数据1.3.5分布式事务支持1.4与MySQL的对比1.5性能测试1.5.1测试一1.5.2系统测试报告21TiDB1.1引言当我们使用Mysql数据库到达一定量级以后,性能就......
  • 达梦数据库配置-主备
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>spring:datasource:driver-class-name:dm.jdbc.driver.DmD......
  • JAVA基础-数组
    数组(array)是一种容器,用来存储同种数据类型的多个值。总结:数组容器在存储数据的时候,需要结合数据类型考虑。例如:int类型的数组容器(booleanbyteshortdouble)建议:容器的类型,和存储的数据类型保持一致数组的定义格式⚫格式一:数据类型[]变量名⚫范例:int[]array⚫格......
  • 备份数据库
    /*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*/;/*!40101SETNAMESutf8*/;/*!50503SETNAMESutf8mb4*/;/*!40014SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0*/;/*!40101SET@OLD_SQL_MODE=@@SQL_MODE,SQL_MOD......
  • C语言之二维数组的奥妙
    二维数组是什么二维数组是一个数组,数组的元素是数组type arr[N]={arr[M]};上图等价于typearr[N][M]N行M列数组,N和M都为整形常量 二维数组的存储方法如图是一个两行两列的二维数组,比如inta[2][2],在内存中是如何存储的采用的是蛇形的方法 二维数组的使用1#i......