public class MergeArray { public static void main(String []args){ int[] array1={1,2,3,0,0,0}; int[] array2={0,2,5,6}; int [] array3=mergeArray2(array1,array2,3,3); for(int i=0;i<array3.length;i++){ System.out.print(array3[i]); } } public static int[] mergeArray(int [] array1,int [] array2,int m,int n){ int i=m-1;//array1数组索引最大 int j=n-1;//array2数组索引最大 int k=m+n-1;//返回的数组索引最大 while(i>=0 && j>=0){ if(array1[i]>array2[j]){ array1[k]=array1[i]; k--; i--; }else{ array1[k]=array2[j]; k--; j--; } } while(j>=0){ array1[k]=array2[j]; k--; j--; } return array1; } public static int[] mergeArray2(int[] nums1,int [] nums2,int m,int n){ int i=m-1; int j=n-1; int k=m+n-1; while(j>=0){ if(i>=0 && nums1[i]>nums2[j] ){ nums1[k]=nums1[i]; k--; i--; }else{ nums1[k]=nums2[j]; k--; j--; } } return nums1; } public static ListNode mergeList(ListNode l1,ListNode l2){ ListNode temp=new ListNode(-1); ListNode cur=temp; while(l1!=null && l2!=null){ if(l1.val<l2.val){ cur.nextNode=l1; l1=l1.nextNode; }else{ cur.nextNode=l2; l2=l2.nextNode; } cur=cur.nextNode; } cur.nextNode=(l1!=null)?l1:l2; return temp.nextNode; } } class ListNode{ public int val; public ListNode nextNode; public ListNode(int val){ this.val=val; } }
基础算法---合并数组
最新推荐文章于 2024-10-25 19:17:49 发布