Question : Merge a sorted array of size n into another sorted array of size m+n.
问题:合并两个有序的数组,将一个长度为n的数组插入到指定的长度为m的数组中。
/**
* @author YuHuang
* @vision 2011-10-04
* This program is only for algorithm training.
*
*/
public class MergeArray {
public static void doMerge(int[] aArray,int[] bArray,int lenOfaArray,int lenOfbArray) {
int k=lenOfaArray+lenOfbArray;
--lenOfaArray;
--lenOfbArray;
while(lenOfaArray>=0 && lenOfbArray>=0){
aArray[--k] = aArray[lenOfaArray]>bArray[lenOfbArray]?aArray[lenOfaArray--]:bArray[lenOfbArray--];
}
while(lenOfbArray>=0){
aArray[--k]=bArray[lenOfbArray--];
}
}
public static void main(String[] args) {
int[] aArray=new int[]{1,7,10,23,34,36,38,40,100,102,110,0,0,0,0,0,0};
int[] bArray=new int[]{25,99,101,109,120,220};
System.out.println("Before Merged - aArray : ");
for(int elem : aArray){
System.out.print(elem+" ");
}
System.out.println();
MergeArray.doMerge(aArray,bArray,11,6);
System.out.println("After Merged - aArray : ");
for(int elem : aArray){
System.out.print(elem+" ");
}
System.out.println();
}
}
运行结果为:
Lab-Computer-0db2f6:JavaExercises labuser$ java MergeArray
Before Merged - aArray :
1 7 10 23 34 36 38 40 100 102 110 0 0 0 0 0 0
After Merged - aArray :
1 7 10 23 25 34 36 38 40 99 100 101 102 109 110 120 220
分享到:
相关推荐
分析:如果由前至后合并,复杂度将会是O(N2),这样的复杂度显然不是最优解,利用两个指针指向两个数组的尾部,从后往前遍历,这样的复杂度为O(n2) 由此可以写出下面的代码: #include #include <algorithm> #...
合并两个有序链表 删除链表的节点 反转链表 合并两个排序的链表 19.删除链表的倒数第N个节点 链表中倒数第k个节点 面试题 02.05. 链表求和 55.跳跃游戏 45.跳跃游戏 II 21.买卖股票的最佳时机 122.买卖股票的最佳...
21:合并两个有序链表 24:两两交换链表中的节点 25:K个一组翻转链表 26:删除排序数组中的重复项 27:移除元素 30:串联所有单词的子串 32:最长有效括号 37:解数独 39:组合总和 40:组合总和II 41:缺失的第一...
两个有序链表的合并 : 删除链表倒数第 n 个结点 : 求链表的中间结点 栈 : 有效的括号 : 最小栈 : 基本的计算器 : 下一个更大元素(LeetCode 496) : 棒球比赛(LeetCode 682) : 比较含退格的字符串(LeetCode 844) 队列 ...
青蛙过河leetcode 切题 Clarification 明确题目要求 Possible solutions 所有可能解法 compare (time/space) optimal 最优 Coding Test cases 五遍刷题 ...合并两个有序数组 141 环形链表 189 旋转
leetcode中文版 leetcode solved leetcode ...合并两个有序数组 Easy 100 相同的树 Easy 101 对称二叉树 Easy 102 二叉树的层序遍历 Medium 2020-05-12 103 二叉树的锯齿形层次遍历 Medium 2020-05-13 10
寻找两个有序数组的中位数 hard 0005 最长回文子串 medium 0006 Z 字形变换 medium 0007 整数反转 easy 0008 字符串转换整数 (atoi) medium 0009 回文数 easy 0011 盛最多水的容器 medium 0014 最长公共前缀 easy ...
合并两个有序数组, 合并两个有序链表, 最小栈, 移动零, 加一, plus-one.ts 删除有序数组中的重复项, remove-duplicate-from-sorted-array 反转链表, reverse-linked-list.ts K 个一组翻转链表, reverse-nodes-in-k-...
合并两个有序链表 23. 合并K个排序链表 33. 搜索旋转排序数组 42. 接雨水 53. 最大子序和 56. 合并区间 60. 第k个排列 69. x 的平方根 71. 简化路径 83. 删除排序链表中的重复元素 93. 复原IP地址 120. 三角形最小...
实现两个有序数组合并为一个有序数组 学习哈希表思想,并完成leetcode上的两数之和(1)及Happy Number(202)!(要求全部用哈希思想实现!) 2、链表 实现单链表、循环链表、双向链表 支持增删操作 实现单链表反转 实现...
采用java实现两个有序数组的合并排序,其中一个数组大小足够容纳两个数组元素 4、ReversePrintSingleList.java 分别采用两种方式实现对单链表的倒序打印 5、FindKthToTail.java 输入一个链表,输出该链表中倒数第k个...
合并两个有序链表 --迭代归并、递归 2、206. 反转链表 --递归、迭代(前后指针) 3、23. 合并k个升序链表 --分治、优先队列 4、面试题 02.07. 链表相交 --双指针 5、24. 两两交换链表中的节点 --迭代(前后指针),...
21.合并两个有序链表 Easy 206.反转链表 Easy 922.按奇偶排序树组II Easy 20.有效的括号 Easy 232.堆实现队列 Easy 496.下一个更大元素 Easy 541.反转字符串II Easy 950.按递增顺序显示卡牌 Medium 24.两两交换链表...
合并两个有序数组 Java Easy 排序和搜索 5 删除排序数组中的重复项 Java Easy 数组 6 存在重复元素 Java Easy 数组 No Title Title2 Solution Difficulty 分类 1 xxx Java 有限队列 哈希表 树&二叉树&二叉树搜索 2
合并两条有序列表,需要用哨兵简化边际条件判断 MergeTwoLists 移除单链表倒数第几项,需要用哨兵简化边际条件判断 RemoveNthFromEnd NextGreater 冒泡和选择排序不要混淆了,插入排序记得插入的操作在位移操作之后...
合并两个排序列表 回文链表 树(n-ary、trie、heap) 四叉树 中序、前序、后序遍历 二叉树的最大深度 验证二叉搜索树 将有序数组转换为二叉搜索树 面向对象编程术语 - Abstraction - Inheritance - Cohesion - ...
go-Leetcode readthedoc PDF下载: ...21.合并两个有序链表 链表 Easy 完成 0008 26.删除排序数组中的重复项 数组、双指针 Easy 完成 0009 27.移除元素 数组、双指针 Easy 完成 0010 28.实现strStr() 双
| 最短公共祖先(两个长字符串) 33 | 最短公共祖先(多个短字符串) 33 Geometry 计算几何 34 | GRAHAM 求凸包 O(N * LOGN) 34 | 判断线段相交 34 | 求多边形重心 34 | 三角形几个重要的点 34 | 平面...