牛客网: BM87
题目: AB两个有序数组合并到A中
思路: 从后往前遍历,初始化双指针 i, j = m-1, n-1, idx = m+n-1,比较A[i]与B[j]的大小移动到idx位置,相应指针前进一位。直到不满足 i >= 0 或j >= 0,单独处理。
代码:
// go
package main
/**
*
* @param A int整型一维数组
* @param B int整型一维数组
* @return void
*/
func merge( A []int , m int, B []int, n int ) {
// write code here
idx := m + n -1
i := m - 1
j := n - 1
for i >= 0 && j >= 0 {
if A[i] > B[j] {
A[idx] = A[i]
i--
idx--
} else {
A[idx] = B[j]
j--
idx--
}
}
for j >= 0 {
A[idx] = B[j]
j--
idx--
}
}