首页 > 其他分享 >88. 合并两个有序数组

88. 合并两个有序数组

时间:2023-07-26 21:04:11浏览次数:35  
标签:数组 示例 int List 88 有序 nums1 nums2

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

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

示例 1:

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]

示例 2:

输入:nums1 = [1], m = 1, nums2 = [], n = 0
输出:[1]

示例 3:

输入:nums1 = [0], m = 0, nums2 = [1], n = 1
输出:[1]
class Solution:
    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
        """
        Do not return anything, modify nums1 in-place instead.
        """
        i = 0
        while i<n:
            j = 0
            for a in range(m+n):
                if nums2[i]<nums1[a] or a==m+i:   # a==m+i a到后面的0了,表示nums1的数都小于nums[i]
                    j=a
                    break
            for a in reversed(range(m+n)):
                nums1[a]=nums1[a-1]
                if a==j:
                    nums1[j]=nums2[i]
                    break
            i+=1
        return nums1

自己的写法,等下看看别人怎么写的

标签:数组,示例,int,List,88,有序,nums1,nums2
From: https://blog.51cto.com/u_16123878/6859728

相关文章

  • 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(简单)
    题目:classSolution{public:vector<int>exchange(vector<int>&nums){for(inti=0,j=nums.size()-1;i<j;i++){if(nums[i]%2==0){//从i前开始,遇到偶数开始处理while(nums[j]%2==0&&am......
  • Codeforces Round 888 (Div. 3) - D
    目录D.PrefixPermutationSumsCodeforcesRound888(Div.3)赛后摘记D.PrefixPermutationSums题意判断给定的长为n-1数组,是否为某个1~n的序列的前缀和数组漏了一个数形成的数组思路就是判断能否变回去,毫无感情的判断机器法一:统计给定前缀和数组的差分数组得......
  • Codeforces Round 888 (Div. 3)
    A.EscalatorConversations#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){intn,m,k,H;cin>>n>>m>>k>>H;vector<int>h(n);intres=0;for(inth,......
  • PHPJSON嵌套对象和数组的解析方法
    PHPJSON嵌套对象和数组的解析方法在PHP编程开发中,JSON是一种非常常用的数据格式。它具有简单、轻量和易于解析的特点,非常适合用于数据交换和存储。当我们处理JSON数据时,经常需要解析嵌套的对象和数组,本文将介绍几种解析方法。1.使用json_decode函数解析在PHP中,我们可以使用jso......
  • 面试题 10.05. 稀疏数组搜索
    稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。示例1:输入:words=["at","","","","ball","","","car","","","dad","","&q......
  • 获取生成数组中的最大值
    给你一个整数n。按下述规则生成一个长度为n+1的数组nums:nums[0]=0nums[1]=1当2<=2*i<=n时,nums[2*i]=nums[i]当2<=2*i+1<=n时,nums[2*i+1]=nums[i]+nums[i+1]返回生成数组nums中的最大值。示例1:输入:n=7输出:3解释:根据......
  • poj 2886 Who Gets the Most Candies? (线段树单点更新应用)
                           poj2886WhoGetstheMostCandies?DescriptionNchildrenaresittinginacircletoplayagame.Thechildrenarenumberedfrom1toNinclockwiseorder.Eachofthemhasacardwithanon-zerointegeronit......
  • Java中代码Bug记录--泛型失效、数组删除、HashMap死循环
    最近在工作的过程中,遇到了不少奇怪自己或者同事的Bug,都是一些出乎意料的,不太容易发现的,记录一下来帮助可能也遇到了这些Bug的人1.编译时泛型校验失效Map<String,String>nameToType=newHashMap<>();nameToType.put("testName",123);//java:不兼容的类型:int无法转......
  • 树状数组
    【模板】单点修改。时间复杂度O(logn)voidadd(intpos,intw){while(pos<=n){tree[pos]+=w;pos+=lowbit(pos);}} 区间查询。时间复杂度O(logn)返回的是从1到pos的值的和。intquery(intpos){intres(0);whil......
  • LeetCode 560. 和为 K 的子数组
    classSolution{public:intsubarraySum(vector<int>&nums,intk){intn=nums.size(),res=0;vector<int>s(n+1,0);unordered_map<int,int>hash;//记录端点i之前所有前缀和的出现情况for(inti=1;i<=n;i++)......