判断数组是否存在重复元素

假设数组有n个元素,元素取值范围为1~n,如何判断数组是否存在重复元素

将每个元素放到他所应该在的地方。如果在放得时候发现他的坑已经被占了,那么出现重复元素

bool judgRepeatedElement(vector<int> v){
    int j = -1;
    for (int i = 0; i < v.size(); i++){
        j = v[i];
        if (i == j) //放对位置的
            continue;
        if (v[i] == v[j]) //如果这个坑已经被占
            return true;
        v[i] = v[j];
        v[j] = j; // 将第j个元素放到index为j下面
    }
    return 0;
}
时间: 2024-10-23 12:27:53

判断数组是否存在重复元素的相关文章

判断数组中的重复元素

问题,有一个n+1个元素的数组,包含1到n的n个数,外加一个重复元素,将这个重复元素找出. 方法一:使用置换法,由于下标是从0开始,如果nums[i]==i+1,说明元素是放在正确的位置,继续判断.如果nums[i] == nums[nums[i]-1],说明nums[i]就是重复元素,是要求找到的,否则就转换nums[i]和nums[nums[i]-1] 代码如下: class Solution { public int findDuplicate(int[] nums) { if (0 ==

去除数组中的重复元素

方法1:开辟辅助空间 #include<vector> #include<algorithm> #include<iostream> #define LENGTH 10 using namespace std; void Unique(){ int array[LENGTH]={1,1,1,2,2,4,4,6,6,6}; int pre=array[0],cur=array[1]; int temp[LENGTH]; int k=0; int i=1;//cur和i指向

如何消除一个数组里面的重复元素?(面试题目)

第一眼看到这个题目的时候,思路是,找出数组中的重复元素,然后删除掉即可.下面为具体代码实现: var data = ['blue', 'red', 'green', 'blue']; function UniqueData(data) { data = data.sort(); for (var i = 0; i < data.length; i++) { if (data[i] === data[i + 1]) { data.splice(i, 1); } } return data; } U

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S

JavaScript判断数组是否包含指定元素的方法

本文实例讲述了JavaScript判断数组是否包含指定元素的方法.分享给大家供大家参考.具体如下: 这段代码通过prototype定义了数组方法,这样就可以在任意数组调用contains方法 /** * Array.prototype.[method name] allows you to define/overwrite an objects method * needle is the item you are searching for * this is a special variab

第11题:移除数组中的重复元素

/* 前几天去爬泰山了,一直没更新,上山时还没什么感觉,下山后简直要崩溃啊,骨头都散了,继续更新...... */ 第11题:移除数组中的重复元素 给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度. 例如: 数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2} 要求: 不能新开数组分配额外的空间.即常数空间限制. 提示: 输入一个整数n,以及其对应的数组A[n],输出新数组长度 样例输入 5 0 0 1 1 2 样例输出 3 解析: #include <stdi

【LeetCode-面试算法经典-Java实现】【026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)】

[026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for anot

删除数组中的重复元素,并返回去重的数组

/*删除数组中的重复元素,并返回去重的数组*/ function delRepeatNum(arr){ var result = []; var middleObj = {}; var temp; for(var i = 0; i < arr.length; i++){ temp = arr[i]; middleObj[temp] = 1; } for(temp in middleObj){ result.push(temp); } return result; }

javascript 判断数组中的重复内容的两种方法 by FungLeo

javascript 判断数组中的重复内容的两种方法 by FungLeo 前言 一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 true 否则,返回 false. 思路 把数组变成字符串 循环原数组,拿每一个字段和这个字符串进行比对,看是否有重复 如何拿A字符串和B字符串进行对比,并且要求判断出B字符串中包含过个A字符串呢? 方法一 indexOf() 和 lastIndexOf() 对比法. 首先,我们构建代码: