Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
NoComments
leetcode
提交
9e2990cd
L
leetcode
项目概览
NoComments
/
leetcode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
leetcode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9e2990cd
编写于
3月 17, 2019
作者:
L
liu13
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
20190317
上级
a6ad9155
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
62 addition
and
1 deletion
+62
-1
code/lc33.java
code/lc33.java
+24
-1
code/lc81.java
code/lc81.java
+36
-0
readme.md
readme.md
+2
-0
未找到文件。
code/lc33.java
浏览文件 @
9e2990cd
...
...
@@ -6,7 +6,8 @@ package code;
* 难度:Medium
* 分类:Array, Binary Search
* 思路:二分查找的思路,多了一步判断,判断哪部分有序,是否在这部分中
* Tips:注意边界判断,是否有等号
* Tips:注意边界判断,是否有等号。挺麻烦的,没有输入样本,很难想通边边角角
* lc81
*/
public
class
lc33
{
public
static
void
main
(
String
[]
args
)
{
...
...
@@ -40,4 +41,26 @@ public class lc33 {
}
return
-
1
;
}
public
int
search2
(
int
[]
nums
,
int
target
)
{
int
begin
=
0
,
end
=
nums
.
length
-
1
;
while
(
begin
<=
end
){
int
mid
=
(
begin
+
end
)/
2
;
if
(
target
==
nums
[
mid
])
return
mid
;
if
(
nums
[
begin
]<=
nums
[
mid
]){
//左边有序,别忘了=,begin==end
if
(
target
>=
nums
[
begin
]&&
target
<
nums
[
mid
]){
end
=
mid
-
1
;
}
else
{
begin
=
mid
+
1
;
}
}
else
{
//右边有序
if
(
target
>
nums
[
mid
]&&
target
<=
nums
[
end
]){
//别忘了=
begin
=
mid
+
1
;
}
else
{
end
=
mid
-
1
;
}
}
}
return
-
1
;
}
}
code/lc81.java
0 → 100644
浏览文件 @
9e2990cd
package
code
;
/*
* 31. Search in Rotated Sorted Array II
* 题意:在翻转有序数组中查找指定数,数组中可能有相等的元素
* 难度:Medium
* 分类:Array, Binary Search
* 思路:多加了一种情况,就是 nums[mid]==nums[begin]==nums[end]
* Tips:注意边界判断,是否有等号
* lc33
*/
public
class
lc81
{
public
boolean
search
(
int
[]
nums
,
int
target
)
{
int
begin
=
0
,
end
=
nums
.
length
-
1
;
while
(
begin
<=
end
){
int
mid
=
(
begin
+
end
)/
2
;
if
(
target
==
nums
[
mid
])
return
true
;
if
(
nums
[
begin
]==
nums
[
end
]&&
nums
[
end
]==
nums
[
mid
])
end
--;
else
if
(
nums
[
begin
]<=
nums
[
mid
]){
//左边有序
if
(
target
>=
nums
[
begin
]&&
target
<
nums
[
mid
]){
end
=
mid
-
1
;
}
else
{
begin
=
mid
+
1
;
}
}
else
if
(
nums
[
mid
]<
nums
[
end
]){
//右边有序
if
(
target
>
nums
[
mid
]&&
target
<=
nums
[
end
]){
begin
=
mid
+
1
;
}
else
{
end
=
mid
-
1
;
}
}
else
{
end
--;
}
}
return
false
;
}
}
readme.md
浏览文件 @
9e2990cd
...
...
@@ -54,11 +54,13 @@ LeetCode 指南
| 032
[
Java
](
./code/lc32.java
)
| 033
[
Java
](
./code/lc33.java
)
| 034
[
Java
](
./code/lc34.java
)
| 034
[
Java
](
./code/lc35.java
)
| 036
[
Java
](
./code/lc36.java
)
| 038
[
Java
](
./code/lc38.java
)
| 039
[
Java
](
./code/lc39.java
)
| 041
[
Java
](
./code/lc41.java
)
| 042
[
Java
](
./code/lc42.java
)
| 043
[
Java
](
./code/lc43.java
)
| 044
[
Java
](
./code/lc44.java
)
| 046
[
Java
](
./code/lc46.java
)
| 048
[
Java
](
./code/lc48.java
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录