当前位置: 首页 > news >正文

山东省建设工程注册中心网站深圳建设网官方网站

山东省建设工程注册中心网站,深圳建设网官方网站,网站建设管理风险,公众号怎么开通收费功能力扣网 88. 合并两个有序数组 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意…

力扣网 88. 合并两个有序数组

题目描述

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

示例 1:

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]
解释:需要合并 [1,2,3] 和 [2,5,6] 。
合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。

示例 2:

输入:nums1 = [1], m = 1, nums2 = [], n = 0
输出:[1]
解释:需要合并 [1] 和 [] 。
合并结果是 [1] 。

示例 3:

输入:nums1 = [0], m = 0, nums2 = [1], n = 1
输出:[1]
解释:需要合并的数组是 [] 和 [1] 。
合并结果是 [1] 。
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。

思路分析

方法1

时间复杂度  O(m+n)

空间复制度 O(m+n)

这是最基本的思路,将两个数组从头遍历,分别比较大小,较小的值先放到一个新创建的数组里,比较完后可能会存在剩余的情况,再将剩余的值放入新数组,题目要求返回数组1,再将新数组的内容拷贝进数组1里即可

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){int s1=0;int s2=0;int num3[200]={0};//新数组int i=0;while(s1<m&&s2<n)//任何一个数组遍历完结束循环{if(nums1[s1]<nums2[s2])//较小值先放{num3[i++]=nums1[s1++];}else if(nums1[s1]==nums2[s2])//相等则一起放,任意规则{num3[i++]=nums1[s1++];num3[i++]=nums2[s2++];}else{num3[i++]=nums2[s2++];}}if(s1==m)//s1遍历完的情况下,s2还没有遍历完的情况下{while(s2<n){num3[i++]=nums2[s2++];}}if(s2==n)//s2遍历完的情况下,s1还没有遍历完{while(s1<m){num3[i++]=nums1[s1++];}}for(int j=0;j<nums1Size;j++)//将新数组拷贝到数组1里{nums1[j]=num3[j];}}

方法2

时间复杂度  O(m+n)

空间复杂度  O(1)

思路:从两个数组的末尾开始遍历,数组1从最后一个数开始向前遍历,较大值放到数组1的末尾,如果遍历完数组2还有剩余的话直接放入。

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){int s1=m-1;//数组1的末尾(最后一个数字)int s2=n-1;//数组2的末尾int index=m+n-1;//(数组1的末尾)while(s1>=0&&s2>=0){if(nums1[s1]>nums2[s2]){nums1[index--]=nums1[s1--];}else{nums1[index--]=nums2[s2--];}}while(s2>=0)//数组2还有剩余的情况{nums1[index--]=nums2[s2--];}}

 

http://www.yayakq.cn/news/262622/

相关文章:

  • 网站维护开发合同wordpress spa
  • 中文网站建设英文网站建设asp建设网站需要了解什么
  • 厦门网站建设服务网站的音乐链接怎么做
  • 建站快车来电网站与网页的区别与联系
  • vs做网站怎么调试网站首页的作用
  • wordpress建站事项星巴克已有的网络营销方式
  • 云南工程建设总承包公司网站建筑人工作网
  • 电脑怎么建网站详细步骤湛江手机建站模板
  • 传奇页游排行榜前十名网站优化员seo招聘
  • 在县城怎么做网站公司泊头做网站找哪家好
  • 会员型网站利用养生网站做竞价引流
  • 网站建设中忽略的字体违法行为常用的搜索引擎有哪些?
  • 茅台酒国内营销网络南沙网站建设优化
  • 网站开发弹窗制作企业网站手机端模板下载
  • 网站空间有哪几种类型网站举报
  • 高铁建设官方网站公司网站建设的环境分析
  • 全国建设网站图片青岛seo网络优化公司
  • wordpress博客实现ajax快速提高网站关键词排名优化
  • 甘肃省省建设厅网站广东省建设厅证件查询
  • 网站的后台管理柳城企业网站制作哪家好
  • 青岛网站制作企业如何做网站
  • 网站开发哪些公司常州好一点的网站建设
  • 静态网站首页更新本地app怎么推广
  • 做网站建设哪家效益快网站主页制作
  • 营销网站定制网店推广实训系统
  • 玉山建设局网站近期军事新闻热点事件
  • 大型网站建设公司推荐国外的做的比较优秀的网站
  • 川渝建设集团网站做游戏钓鱼网站
  • 防城港网站设计公司北京网站建设认知
  • 杭州网络营销网站亿网联播