private void mergeRange(int[] nums, int left, int mid, int right, int[] tempArray) { int i = left; int j = mid + 1; int tempIndex = 0; while (i <= mid && j <= right) { if (nums[i] < nums[j]) { tempArray[tempIndex++] = nums[i++]; } else { tempArray[tempIndex++] = nums[j++]; } } while (i <= mid) { tempArray[tempIndex++] = nums[i++]; } while (j <= right) { tempArray[tempIndex++] = nums[j++]; } tempIndex = 0; for (int k = left; k <= right; ++k) { nums[k] = tempArray[tempIndex++]; } } 可以复用tempArray,所以是O(n)空间复杂度
点赞 评论

相关推荐

12-25 16:26
已编辑
河北科技学院 Java
勇敢的牛油不服输:2800-300那不等于2500一个月吗兄弟们
点赞 评论 收藏
分享
12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务