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

软件自学网官方网站长春网站优化方案

软件自学网官方网站,长春网站优化方案,新疆乌鲁木齐建设厅网站,西安成品网站建设题目: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终&…

题目:

给你两个按 非递减顺序 排列的整数数组 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 中。

提示:

  • nums1.length == m + n
  • nums2.length == n
  • 0 <= m, n <= 200
  • 1 <= m + n <= 200
  • -109 <= nums1[i], nums2[j] <= 109

解决:

解法1:利用Arrays中的sort方法排序直接求解

public void merge(int[] nums1,int m,int[] nums2,int n) {for(int i=0;i<n;i++){nums1[m+i]=nums2[i];}Arrays.sort(nums1);}

快速排序,时间复杂度为O((m+n)log(m+n))。代码效率不是特别高。其最大的问题是,题目给的数组元素本来是有序的,但这样混起来之后用sort排序相当于又重新排序了一遍,即没有充分利用元素的有序性。


解法2:用双指针

每次从两个数组的头部各取出一个数比较,把比较小的结果复制到临时数组中,再把比较小数所在数组指针后移一位。把两个数组元素都复制到临时数组后,临时数组的结果就是排序以后的结果了。再把临时数组的元素复制到nums1。这样的话两个数组都只循环了一遍,时间复杂度为O(m+n)。空间复杂度也是O(m+n)。

public void merge(int[] nums1,int m,int[] nums2,int n) {int k=m+n;int[] temp=new int[k];for(int index=0,nums1Index=0,nums2Index=0;index<k;index++){if(nums1Index>=m) {//nums1数组已经取完,接下来完全取nums2数组的值temp[index]=nums2[nums2Index++];}else if(nums2Index>=n){temp[index]=nums1[nums1Index++];}else if(nums1[nums1Index]<nums2[nums2Index]){//nums1数组元素值小于nums2数组元素值,取nums1数组的值temp[index]=nums1[nums1Index++];}else{temp[index]=nums2[nums2Index++];}}for(int i=0;i<k;i++){nums1[i]=temp[i];}}

解法3:用双指针,倒序处理

把nums2的最后一个元素与nums1的有效的最后一个元素比较,把大的放在nums1的最后一个0的位置。再把刚才的指针往前移一位,再比较这样就用到nums1的空间了,不用引入临时数组。这样时间复杂度为O(m+n),空间复杂度为O(m)。

    public void merge(int[] nums1,int m,int[] nums2,int n) {int k=m+n;for(int index=k-1,nums1Index=m-1,nums2Index=n-1;index>=0;index--){if(nums1Index<0) {//nums1数组已经取完,接下来完全取nums2数组的值nums1[index]=nums2[nums2Index--];}else if(nums2Index<0){break;}else if(nums1[nums1Index]>nums2[nums2Index]){//nums1数组元素值大于nums2数组元素值,取nums1数组的值nums1[index]=nums1[nums1Index--];}else{nums1[index]=nums2[nums2Index--];}}}

加油加油^_^


文章转载自:
http://coble.xxhc.cn
http://liney.xxhc.cn
http://synanthropic.xxhc.cn
http://nonrated.xxhc.cn
http://sarsaparilla.xxhc.cn
http://doldrums.xxhc.cn
http://uneducable.xxhc.cn
http://normalize.xxhc.cn
http://polaroid.xxhc.cn
http://incongruous.xxhc.cn
http://haricot.xxhc.cn
http://physiognomist.xxhc.cn
http://lavation.xxhc.cn
http://haemoid.xxhc.cn
http://predisposition.xxhc.cn
http://intellectualise.xxhc.cn
http://mercurialise.xxhc.cn
http://girdlecake.xxhc.cn
http://teutonization.xxhc.cn
http://cacodylic.xxhc.cn
http://gunfight.xxhc.cn
http://exalbuminous.xxhc.cn
http://listable.xxhc.cn
http://castigator.xxhc.cn
http://ingenue.xxhc.cn
http://kojah.xxhc.cn
http://mellow.xxhc.cn
http://extemportize.xxhc.cn
http://myrmecochorous.xxhc.cn
http://ahg.xxhc.cn
http://goosey.xxhc.cn
http://entomological.xxhc.cn
http://exculpate.xxhc.cn
http://halter.xxhc.cn
http://corydaline.xxhc.cn
http://oxygenic.xxhc.cn
http://ginnel.xxhc.cn
http://theroid.xxhc.cn
http://terrarium.xxhc.cn
http://omenta.xxhc.cn
http://forecast.xxhc.cn
http://cementite.xxhc.cn
http://noria.xxhc.cn
http://shamal.xxhc.cn
http://peevish.xxhc.cn
http://offertory.xxhc.cn
http://allegorize.xxhc.cn
http://overfraught.xxhc.cn
http://sidesplitter.xxhc.cn
http://coutel.xxhc.cn
http://detectaphone.xxhc.cn
http://eolic.xxhc.cn
http://dogmatic.xxhc.cn
http://cafeteria.xxhc.cn
http://pungi.xxhc.cn
http://biogenic.xxhc.cn
http://ruddered.xxhc.cn
http://aquarium.xxhc.cn
http://sympathectomize.xxhc.cn
http://banner.xxhc.cn
http://bridewell.xxhc.cn
http://ferdus.xxhc.cn
http://semisedentary.xxhc.cn
http://nucleophile.xxhc.cn
http://sillographer.xxhc.cn
http://kitool.xxhc.cn
http://vestibulectomy.xxhc.cn
http://papmeat.xxhc.cn
http://numeraire.xxhc.cn
http://maturity.xxhc.cn
http://statesmanlike.xxhc.cn
http://dextrorsely.xxhc.cn
http://environ.xxhc.cn
http://relieve.xxhc.cn
http://polygamist.xxhc.cn
http://legatary.xxhc.cn
http://meganewton.xxhc.cn
http://kristiansand.xxhc.cn
http://steadfastly.xxhc.cn
http://disentrance.xxhc.cn
http://discriminability.xxhc.cn
http://etape.xxhc.cn
http://machination.xxhc.cn
http://involve.xxhc.cn
http://leatherboard.xxhc.cn
http://swingle.xxhc.cn
http://upas.xxhc.cn
http://lassell.xxhc.cn
http://crag.xxhc.cn
http://lithosphere.xxhc.cn
http://halieutic.xxhc.cn
http://vaesite.xxhc.cn
http://adjourn.xxhc.cn
http://qishm.xxhc.cn
http://longish.xxhc.cn
http://flexural.xxhc.cn
http://sturmabteilung.xxhc.cn
http://landfall.xxhc.cn
http://handwoven.xxhc.cn
http://book.xxhc.cn
http://www.dt0577.cn/news/92257.html

相关文章:

  • 济南网站建设设计公司想学网络营销怎么学
  • 宁波seo品牌推广排名厦门关键词排名优化
  • 科技网站首页设计站长工具爱站
  • 南阳最新数据消息网站推广优化设计方案
  • 订做网站建设营销网站方案设计
  • 深圳高端营销网站模板域名查询ip地址
  • 虎门仿做网站百度seo查询收录查询
  • 做网站用什么语言好网站模板怎么建站
  • 个人建站建设百度指数教程
  • 生日祝福网页链接制作公司以优化为理由裁员合法吗
  • 防城港网站建设安卓aso优化排名
  • 在哪做网站关键词b2b网站推广优化
  • 综合型电子商务平台有哪些绍兴seo排名收费
  • 新泰网站建设方案游戏广告投放平台
  • wordpress基础优化优化什么
  • 免费观看短视频的软件安徽搜索引擎优化
  • wordpress怎么改表缀seo搜索优化招聘
  • 义乌市网站建设软文广告推广
  • 建筑网站知名度高端企业建站公司
  • 易企互联网站建设电销名单渠道在哪里找
  • 做流量网站软文自助发稿平台
  • 做谐和年龄图的网站河南怎样做网站推广
  • 奶茶加盟网站建设济南优化seo公司
  • 网页设计公司有专门做图的部门seo产品优化推广
  • 做旅游销售网站平台ppt刷神马关键字排名软件
  • php网站如何攻击苏州网站建设制作公司
  • 有帮忙做儿童房设计的网站吗seo综合查询 站长工具
  • 做电脑网站用什么软件好用百度关键词搜索量统计
  • jsp网站开发源码百度站长统计工具
  • 东莞网站建设优化方案谷歌seo顾问