Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Given two sorted integer arrays A and B, merge B into A as one sorted array.
- * Note: You may assume that A has enough space (size that greated or equal to m + n) to hold
- * additional elements from B. The Number of elements initialized in A and B are m and n respectively.
- *
- * Idea: 从后向前排(从前往后会导致A数组数据丢失)
- */
- fun merge(array1: Array<Int>, n: Int, array2: Array<Int>, m: Int) : Array<Int> {
- var index = n + m - 1
- var i = n - 1
- var j = m - 1
- while (index >= 0) {
- when {
- i >= 0 && j >= 0 -> {
- if (array1[i] > array2[j]) {
- array1[index] = array1[i]
- i --
- } else {
- array1[index] = array2[j]
- j --
- }
- }
- i >= 0 -> {
- array1[index] = array1[i]
- i --
- }
- j >= 0 -> {
- array1[index] = array2[j]
- j --
- }
- }
- index --
- }
- return array1
- }
Add Comment
Please, Sign In to add comment