Lion X

** LeetCode算法实现** <Excerpt in index | 首页摘要>
LeetCode——961算法实现之C语言

<The rest of contents | 余下全文>

LeetCode_961_N-Repeated Element in Size 2N Array

题目描述

在2n大小的数组a中,有n+1个唯一元素,其中一个元素重复n次。

实现步骤

方法一

从数组的第三个元素开始,逐个与第1、2个元素比较,如果相等返回相等的值

方法二

1.定义三个变量,将数组的前三个元素分别赋给三个变量
2.判断数组的长度是否为4并且第一个元素与第四个元素相等
3.判断第一个元素与第二个或与第三个是否相等
4.判断第二个元素与第三个元素是否相等
5.将数组新元素重新赋给变量,重复3、4

代码实现

C语言

1
2
3
4
5
6
7
int repeatedNTimes(int* A, int ASize){
for(int i = 2; i < ASize; i++){
if(A[i] == A[i - 1] || A[i] == A[i - 2])
return A[i];
}
return -1;
}

Java语言

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public int repeatedNTimes(int[] A) {
int a = A[0];
int b = A[1];
int c = A[2];
int i = 3;
if(A.length == 4 && a == A[3])
return a;
do{
if(a == b || a == c)
return a;
if(b == c)
return b;
a = b;
b = c;
c = A[i];
i++;
}while(i <= A.length);
return -1;
}

 Comments