提交 427425dc 编写于 作者: 门心叼龙's avatar 门心叼龙

code prefect

上级 905fcf27
......@@ -35,7 +35,7 @@
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
......
......@@ -10,24 +10,53 @@ import java.util.HashSet;
* Update: <br>
*/
public class MainAlgorithm {
public static void main(String[] arg) {
int[] arr = {11, 3, 10, 11, 34, 5, 21};
System.out.println(checkRepeat(arr));
}
public static void main(String[] arg) {
int[] arr = {11, 3, 10, 11, 34, 5, 21};
System.out.println(checkRepeat(arr));
}
// 查找一个数组里面有没有重复元素
private static boolean checkRepeat(int[] arr) {
// 1.声明一个散列表表
// 2.遍历这个数组
// 3.对遍历的元素依次进行判断,如果散列表里面没有就往散列表里面塞,有就直接退出了
HashSet<Integer> hashSet = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
if (hashSet.contains(arr[i])) {
return true;
} else {
hashSet.add(arr[i]);
}
}
return false;
}
// 查找一个数组里面有没有重复元素
private static boolean checkRepeat(int[] arr) {
// 1.声明一个散列表表
// 2.遍历这个数组
// 3.对遍历的元素依次进行判断,如果散列表里面没有就往散列表里面塞,有就直接退出了
HashSet<Integer> hashSet = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
if (hashSet.contains(arr[i])) {
return true;
} else {
hashSet.add(arr[i]);
}
//解法2:先对数组中的元素进行排序,排序完毕再两两对比
/* 解法3:
* 遍历数组,当遍历到下标为i的数字时,首先比较arr[i]是否等于i
* 如果arr[i]等于i,则遍历下一个数字;
* 如果arr[i]不等于i,且arr[arr[i]]不等于arr[i],则交换这两个元素的值;
* 如果arr[i]不等于i,且arr[arr[i]]等于arr[i],则该元素为重复数字
*/
public static boolean duplicate(int numbers[], int length, int[] duplication) {
if (numbers == null || numbers.length < 2 || length < 2 ||
duplication == null || duplication.length == 0)
return false;
boolean hasDuplicate = false;
int i = 0;
while (i < length) {
int m = numbers[i];
if (m == i) {
++i;
} else if (numbers[m] != m) {
numbers[i] = numbers[m];
numbers[m] = m;
} else {
hasDuplicate = true;
duplication[0] = m;
break;
}
}
return hasDuplicate;
}
return false;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册