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

中国建设银行吉林省分行官网站杭州设计企业网站高端公司

中国建设银行吉林省分行官网站,杭州设计企业网站高端公司,开发软件大全,代做网站的公司目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们两个升序数组,让我们合并它们,要求合并之后仍然是升序,并且这个合并操作是在数组1原地修改…

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们两个升序数组,让我们合并它们,要求合并之后仍然是升序,并且这个合并操作是在数组1原地修改的。数组1的有效数据长度为 m ,而数组1的长度为 m + n,n 是数组2的有效数据长度以及数组的长度。

比较直观容易想到的做法就是先把数组1的尾部删去 n 个无效数据,再把数组2都添加到数组1的尾部。接着直接对数组1排序即可。这样做是可以的,效果也还不错。

 不过这么做就没有利用到原数组是升序的这样一个特性。

另一个容易想到的是双指针,我们用双指针遍历分别两个数组,每次都比较两个指针所指元素的大小,将较小的元素添加进新数据,接着往后移动该指针。直到两个指针的大小分别为 m 和 n 即为遍历结束。

最后将新数组赋值给数组1即可。

那这么做还是有点不痛快,还是直接在数组1原地修改比较舒服。那有没有办法呢?

答案是有的。

首先我们上述办法肯定是不行的,这么做会把数组1的有效数据覆盖掉,那应该怎么做呢。

我们覆盖无效数据不就好啦,不能从头遍历我们就从尾部遍历,一样是双指针,只不过两个指针初始化为 m - 1 和 n - 1 ,每次比较两个指针所指元素的大小,我们把较大的元素放到数组1的末尾,直到两个指针都小于0,那么我们就是原地合并两个数组完毕了。

代码:

class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int index1=m-1,index2=n-1,index3=n+m-1;while(index1>=0&&index2>=0){if(nums1[index1]>nums2[index2]) nums1[index3--]=nums1[index1--];else nums1[index3--]=nums2[index2--];}while(index1>=0) nums1[index3--]=nums1[index1--];while(index2>=0) nums1[index3--]=nums2[index2--];}
};

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

相关文章:

  • 汉南公司网站建设北京网站制作公司
  • 南京建站在线咨询常州市教育基本建设与装备管理中心网站
  • 网站开发算是固定资产吗php调用网站导航怎么弄
  • 我有域名怎么建网站wordpress免费采集器
  • 花瓣设计网站官网入口做夜夜做网站
  • 网站建设选择什么模式网页设计与网站建设的理解
  • 需要注册的网站建设网站建设网站徒手整形培训
  • 在哪里做马可波罗网站dhru商城网站建设
  • 可以提供排版的网站免费二维码推广平台
  • 网站建设哪些模板号学生网页制作教程
  • 东莞建设培训中心网站彩票网站怎么做赚钱
  • 做网站公司找意向客户企业关键词排名优化公司
  • 金融做市场广告挂哪些网站自助个人网站注册
  • 做服装网站的意义是什么响应式网站导航栏
  • 菏泽企业网站建设网站绝对布局
  • 免费企业网站系统源码下载网络推广标题技巧
  • 热水工程技术支持 东莞网站建设推广平台怎么赚钱
  • 网页制作常用软件桂林网站优化公司
  • 有什么平台可以做网站阳江问政平台官网入口
  • 商城网站建设天软科技营销型网站建设合同范本
  • 桂林软件开发wordpress中文seo插件
  • 北京网站备案公司wordpress 裁剪
  • 陵水网站建设哪家专业wordpress中的portfolio
  • 各大中文网站网站建设逻辑组织的几种模型
  • 网站介绍词个人网站的建设
  • 头像代做网站天津小型网站建设
  • 手机静态网站开发制作wordpress 菜单 消失
  • 安康做企业网站的项目计划书文件
  • 如何将自己做的网站传到网上泰安网络公司行情
  • 简单描述网站建设流程大学校园门户网站建设