剑指offer 合并两个数组 java实现
来源:互联网 发布:值乎 分答 编辑:程序博客网 时间:2024/06/01 09:29
合并两个数组时(包括字符串),如果从前往后复制每个数字 需要重复移动数字,应当考虑由后向前遍历复制,可以减少移动次数。
public class MergeTwoArray {public int[] merge(int[] a,int[] b){if(a==null||b==null){System.out.println("空数组异常");System.exit(0);}if(b.length==0){return a;}int count = 0;//计算有空闲空间数组内 有效元素的长度while(a[count]!=0||a[count+1] !=0){count++;}int j = count-1;//指示标识 a数组int i = b.length-1;//指示标识int k = count+b.length-1;//a数组 插入位置while(i >=0&&j>=0&&k>j){if(a[j]==b[i]){a[k--] = b[i--];a[k--] = a[j--];}else if(a[j]>b[i]){a[k--] = a[j--]; }else{a[k--] = b[i--];}}return a;}public static void main(String[] args) {// TODO Auto-generated method stubMergeTwoArray merge = new MergeTwoArray();int[] array1 = new int[]{0,1,3,5,7,9,0,0,0,0,0,0,0};int[] array2 = new int[]{2,4,6,8,10};int[] array = merge.merge(array1, array2);for(int i = 0; i < array.length;i++){System.out.println(array[i]);}}}
0 0
- 剑指offer 合并两个数组 java实现
- 剑指offer面试题java实现之题4之相关题目:两个排序数组合并
- java实现合并两个数组
- 《剑指offer》合并两个有序的数组
- 合并两个有序数组Java实现
- java实现两个有序数组的合并
- java实现两个数组合并去重
- 合并两个数组(剑指offer延伸题)
- [剑指offer]面试题17:合并两个排序的数组
- 剑指offer---数组合并
- 剑指Offer--面试题17:合并两个排序的链表--Java实现
- JAVA实现合并两个排序的链表(《剑指offer》)
- JAVA实现合并两个排序的链表(《剑指offer》)
- 剑指offer 面试题17 合并两个排序的链表-Java实现
- java实现把两个有序数组合并到一个数组
- 剑指offer:合并两个排序的链表 代码实现
- 【剑指offer-Java版】17合并两个排序链表
- 剑指offer题解【合并两个排序的链表】-java
- Maven创建项目: Failed to execute goal org.apache.maven.plugin( mvn archetype:create)
- leetcode_208 Implement Trie(Prefix Tree)
- hello world
- JAVA中的继承
- qt4与qt5不兼容问题
- 剑指offer 合并两个数组 java实现
- c++实验二
- IOS开发探索(一):CocoalPods相关
- 如何用Visio画数据流图
- Django 操作笔记
- 对象接口
- Android开发之开源框架OKHTTP的Get请求代码,得到json字符串方法
- 南阳题目216-A problem is easy
- JAVAEE 框架 2016-3-30