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

公司网址制作移动网站推广如何优化

公司网址制作,移动网站推广如何优化,章丘网站优化,js网站分页怎么做【LetMeFly】88.合并两个有序数组:O(m 1) O(1)的做法 力扣题目链接:https://leetcode.cn/problems/merge-sorted-array/ 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2…

【LetMeFly】88.合并两个有序数组:O(m + 1) + O(1)的做法

力扣题目链接:https://leetcode.cn/problems/merge-sorted-array/

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

请你 合并 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

 

进阶:你可以设计实现一个时间复杂度为 O(m + n) 的算法解决此问题吗?

方法一:三指针(双指针)

这道题不返回任何值,很显然,出题者想让你在nums1数组上原地修改。

怎么原地修改呢?nums1后面全是 0 0 0,而这些地方本来应该是“大数”,所以我们使用两个指针,从 n u m s 1 nums1 nums1 n u m s 2 nums2 nums2的大数区域往前指,每次将二者较大的那个放到nums1后面不就可以了吗。

      tail↓
1 3 0 0↑
2 6↑

3 < 6 3 < 6 3<6,所以将 6 6 6放到tail处,

    tail↓
1 3 0 6↑
2 -
↑

3 > 2 3 > 2 3>2,所以将 3 3 3放到tail处,

  tail↓
1 - 3 6
↑
2 -
↑

1 < 2 1 < 2 1<2,所以将 2 2 2放到tail处,

tail
↓
1 2 3 6
↑
- -

n u m s 2 nums2 nums2的指针指完了,任务完成,得到 [ 1 , 2 , 3 , 6 ] [1, 2, 3, 6] [1,2,3,6]

  • 时间复杂度 O ( m + n ) O(m + n) O(m+n)
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++

class Solution {
public:void merge(vector<int>& nums1, int l1, vector<int>& nums2, int l2) {int n = l1 + l2 - 1;l1--, l2--;while (l2 >= 0) {while (l1 >= 0 && nums1[l1] > nums2[l2]) {nums1[n--] = nums1[l1--];}nums1[n--] = nums2[l2--];}}
};

Python

from typing import Listclass Solution:def merge(self, nums1: List[int], l1: int, nums2: List[int], l2: int) -> None:"""Do not return anything, modify nums1 in-place instead."""l = l1 + l2 - 1l1, l2 = l1 - 1, l2 - 1while l2 >= 0:while l1 >= 0 and nums1[l1] > nums2[l2]:nums1[l] = nums1[l1]l, l1 = l - 1, l1 - 1nums1[l] = nums2[l2]l, l2 = l - 1, l2 - 1

同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/132256535

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

相关文章:

  • 新建的网站需要维护吗云主机怎么上传网站
  • 启航做网站好吗上海哪家网站建得好
  • 首京建设投资引导基金网站免费网站正能量
  • 官网网站建设收费一人开公司做网站创业
  • 沭阳网站建设中山网站建设模板招商
  • 大学生兼职网网站建设计划书怎么去推广自己的公司
  • 伍佰亿网站推广99到家微网站什么做的
  • 网站建设价格受哪些影响为新公司取名免费
  • 商品网站建设及推广策划书深圳保障性住房申请
  • 政务信息网站的建设的意义做网站其实不贵
  • 网站设置安全网站获取访问者qq
  • 解释自己做的网站做网站编程要学什么
  • 资兴做网站公司北京注册公司地址新规定
  • wordpress 图片站南京做网站团队
  • 专业东莞网站制作公司wordpress历史版本下载地址
  • 可以自己做网站赚钱吗nginx wordpress 主题
  • 如何在建设银行网站申购纪念币一个网站用两个域名
  • 中高端网站设计排名海安做网站
  • 网页制作怎么上传到网站聚焦婚纱摄影
  • 微网站主机注册免费wordpress 谷歌收录快
  • php网站开发方案企业公司网站模板下载
  • 网站域名建设费进什么科目如何在百度上发布广告
  • 琼筑网站是哪家做的月夜直播免费完整版
  • 如何提高网站百度权重网站添加友情链接
  • 绿色环保材料网站模板下载小程序开发外包
  • 如何在网站做引流免费软件网站下载
  • 口腔网站设计图深圳华企网站建设
  • 库存网站建设哪家好新品发布会
  • 网站设置flash网站建设厦门
  • 网页版whatsapp怎么下载深圳seo技术