leetcode第88题-Merge Sorted Array
来源:互联网 发布:软件管理下载安装 编辑:程序博客网 时间:2024/06/10 05:02
题目的意思:合并两个有序的数组到第一个数组中,使合并之后的数组仍然有序,且假设第一个数组有足够的空间。
解题思路:一开始遇到这个题目,我也是不顾一切的从头开始遍历,结果很麻烦,总是有一两个位置走不对,数组并不像链表那样插入一个节点这么简单,我们要解决的就是插入节点的位置问题。所幸,上网查了一下其他人的做法,突然想到了可以从后往前遍历,因为每个数组都是有序的,比较两个数组的最后一个位置的元素大小就可以确定该元素的最终位置,最后就利用这个想法AC了这道题。
#include<stdio.h>#include<stdlib.h>void merge(int A[], int m, int B[], int n) { int i=0,j=0;while(m&&n){if(A[m-1]>B[n-1]){A[m+n-1]=A[m-1];m--;}else{A[m+n-1]=B[n-1];n--;}}while(n){A[n-1]=B[n-1];n--;}}int main(){int m,n,i;while(scanf("%d %d",&m,&n)!=EOF){int *a=(int *)malloc(sizeof(int)*(m+n));int *b=(int *)malloc(sizeof(int)*n);for(i=0;i<m;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)scanf("%d",&b[i]);for(i=m;i<m+n;i++)a[i]=0;merge(a,m,b,n);for(i=0;i<m+n;i++)printf("%d ",a[i]);printf("\n");}return 0;}
1 0
- leetcode第88题-Merge Sorted Array
- Leetcode 第88题 Merge Sorted Array
- Leetcode 第88题 Merge Sorted Array
- LeetCode(88) Merge Sorted Array
- [leetcode 88] Merge Sorted Array
- LeetCode[88]Merge Sorted Array
- leetcode-88 Merge Sorted Array
- leetcode || 88、Merge Sorted Array
- LeetCode---(88)Merge Sorted Array
- Leetcode[88]-Merge Sorted Array
- leetcode 88 Merge Sorted Array
- leetcode[88]:Merge Sorted Array
- Leetcode #88 Merge Sorted Array
- leetcode 88: Merge Sorted Array
- leetcode: (88) Merge Sorted Array
- [Leetcode]#88 Merge Sorted Array
- 【LeetCode 88 】 Merge Sorted Array
- [leetcode 88]Merge Sorted Array
- c++计时器
- C++常用的预处理指令:
- LeetCode-15 3Sum(求3数和为零的情况总数)
- android setVisibility三种状态值的解释
- leetcode-15 3Sum
- leetcode第88题-Merge Sorted Array
- rtcm 报文
- 哈希算法学习
- Mac技巧
- Linux下端口被占用解决
- 以MyBatis+SpringMVC3.0实现的,借鉴了Hibernate设计思想,采用封装、抽象、继承的设计思想,做到了数据与相应的操作的高内聚低耦合的实现
- 作业3.24
- Javascript的常用语句
- 自定义控件系列之应用篇——自定义标题栏控件