GO题解 | #合并两个有序的数组#
合并两个有序的数组
http://www.nowcoder.com/questionTerminal/89865d4375634fc484f3a24b7fe65665
go解题答案
- 时间复杂度O(m+n)
- 思路概括:双指针两两比较
- 思路核心:
1、从大到小,从后往前两两比较,大的赋值给原数组1func merge( A []int , m int, B []int, n int ) { // write code here if len(A)==0 &&len(B)==0{ return } // 从后往前两两比较,大的赋值 for m!=0&&n!=0{ if A[m-1]<B[n-1]{ A[m+n-1] = B[n-1] // 大的赋值 n-- // 指针移动 }else { A[m+n-1] = A[m-1] m-- } } // 只考虑B数组剩余的情况,也就是n指针,因为A数组是整合后的数组 for n>0 { A[n-1]=B[n-1] n-- } }
如果有帮助请点个赞哦, 更多文章请看我的博客
题主背景
- 从业8年——超级内卷500Q技术经理——目前专注go和微服务架构
GO题解 文章被收录于专栏
go题解