Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
java-data-algorithm
提交
427425dc
J
java-data-algorithm
项目概览
门心叼龙
/
java-data-algorithm
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
java-data-algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
427425dc
编写于
8月 11, 2019
作者:
门心叼龙
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code prefect
上级
905fcf27
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
48 addition
and
19 deletion
+48
-19
.idea/caches/build_file_checksums.ser
.idea/caches/build_file_checksums.ser
+0
-0
.idea/misc.xml
.idea/misc.xml
+1
-1
testlib/src/main/java/A数组/A004数组是否有重复元素/MainAlgorithm.java
testlib/src/main/java/A数组/A004数组是否有重复元素/MainAlgorithm.java
+47
-18
未找到文件。
.idea/caches/build_file_checksums.ser
浏览文件 @
427425dc
无法预览此类型文件
.idea/misc.xml
浏览文件 @
427425dc
...
...
@@ -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"
>
...
...
testlib/src/main/java/A数组/A004数组是否有重复元素/MainAlgorithm.java
浏览文件 @
427425dc
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录