Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GreyZeng
algorithm
提交
8f09fb09
A
algorithm
项目概览
GreyZeng
/
algorithm
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8f09fb09
编写于
1月 07, 2024
作者:
GreyZeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
merge two sorted list
上级
f84e8bd5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
48 deletion
+30
-48
src/main/java/git/snippet/leetcode/LeetCode_0088_MergeSortedArray.java
.../git/snippet/leetcode/LeetCode_0088_MergeSortedArray.java
+0
-42
src/main/java/git/snippet/mergesort/LeetCode_0088_MergeSortedArray.java
...git/snippet/mergesort/LeetCode_0088_MergeSortedArray.java
+27
-0
src/main/java/git/snippet/mergesort/LintCode_0006_MergeTwoSortedArrays.java
...snippet/mergesort/LintCode_0006_MergeTwoSortedArrays.java
+3
-6
未找到文件。
src/main/java/git/snippet/leetcode/LeetCode_0088_MergeSortedArray.java
已删除
100644 → 0
浏览文件 @
f84e8bd5
package
git.snippet.leetcode
;
// Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
//
// Note:
//
// The number of elements initialized in nums1 and nums2 are m and n respectively.
// You may assume that nums1 has enough space (size that is equal to m + n) to hold additional
// elements from nums2.
// Example:
//
// Input:
// nums1 = [1,2,3,0,0,0], m = 3
// nums2 = [2,5,6], n = 3
//
// Output: [1,2,2,3,5,6]
//
//
// Constraints:
//
// -10^9 <= nums1[i], nums2[i] <= 10^9
// nums1.length == m + n
// nums2.length == n
// https://leetcode.cn/problems/merge-sorted-array/
// 笔记:
public
class
LeetCode_0088_MergeSortedArray
{
// 从尾部开始处理
public
void
merge
(
int
[]
nums1
,
int
m
,
int
[]
nums2
,
int
n
)
{
int
len
=
m
+
n
;
while
(
m
>
0
&&
n
>
0
)
{
if
(
nums1
[
m
-
1
]
>
nums2
[
n
-
1
])
{
nums1
[--
len
]
=
nums1
[--
m
];
}
else
{
nums1
[--
len
]
=
nums2
[--
n
];
}
}
while
(
n
>
0
)
{
nums1
[--
len
]
=
nums2
[--
n
];
}
}
}
src/main/java/git/snippet/mergesort/LeetCode_0088_MergeSortedArray.java
0 → 100644
浏览文件 @
8f09fb09
package
git.snippet.mergesort
;
// 合并两个有序数组
// https://leetcode.com/problems/merge-sorted-array/
// 笔记:https://www.cnblogs.com/greyzeng/p/16653063.html
/**
* @see LintCode_0006_MergeTwoSortedArrays
*/
public
class
LeetCode_0088_MergeSortedArray
{
// 逆向遍历
// 谁大到最后一个位置
// 依次递减
public
void
merge
(
int
[]
nums1
,
int
m
,
int
[]
nums2
,
int
n
)
{
int
i
=
m
-
1
;
int
j
=
n
-
1
;
int
index
=
m
+
n
-
1
;
while
(
i
>=
0
&&
j
>=
0
)
{
nums1
[
index
--]
=
nums1
[
i
]
<
nums2
[
j
]
?
nums2
[
j
--]
:
nums1
[
i
--];
}
while
(
j
>=
0
)
{
// 只需要继续判断 nums2 了
// 因为 nums1 自然拍好了
nums1
[
index
--]
=
nums2
[
j
--];
}
}
}
src/main/java/git/snippet/
binarysearch
/LintCode_0006_MergeTwoSortedArrays.java
→
src/main/java/git/snippet/
mergesort
/LintCode_0006_MergeTwoSortedArrays.java
浏览文件 @
8f09fb09
package
git.snippet.
binarysearch
;
package
git.snippet.
mergesort
;
// How can you optimize your algorithm if one array is very large and the other is very small?
// https://www.lintcode.com/problem/6/
// 笔记:https://www.cnblogs.com/greyzeng/p/16653063.html
public
class
LintCode_0006_MergeTwoSortedArrays
{
// 常规解法
// 借鉴归并排序方法
public
static
int
[]
mergeSortedArray1
(
int
[]
A
,
int
[]
B
)
{
int
m
=
A
.
length
;
int
n
=
B
.
length
;
...
...
@@ -13,11 +14,7 @@ public class LintCode_0006_MergeTwoSortedArrays {
int
j
=
0
;
int
index
=
0
;
while
(
i
<
m
&&
j
<
n
)
{
if
(
A
[
i
]
>
B
[
j
])
{
res
[
index
++]
=
B
[
j
++];
}
else
{
res
[
index
++]
=
A
[
i
++];
}
res
[
index
++]
=
A
[
i
]
>
B
[
j
]
?
B
[
j
++]
:
A
[
i
++];
}
while
(
i
<
m
)
{
res
[
index
++]
=
A
[
i
++];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录