首页 > 其他分享 >Merge Sorted Array

Merge Sorted Array

时间:2023-06-26 12:14:38浏览次数:27  
标签:elements merge arrays Merge result Sorted Array nums1 nums2

You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of elements in nums1 and nums2 respectively.

Merge nums1 and nums2 into a single array sorted in non-decreasing order.

The final sorted array should not be returned by the function, but instead be stored inside the array nums1. To accommodate this, nums1 has a length of m + n, where the first m elements denote the elements that should be merged, and the last n elements are set to 0 and should be ignored. nums2 has a length of n.

Example 1:

Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]
Explanation: The arrays we are merging are [1,2,3] and [2,5,6].
The result of the merge is [1,2,2,3,5,6] with the underlined elements coming from nums1.

Example 2:

Input: nums1 = [1], m = 1, nums2 = [], n = 0
Output: [1]
Explanation: The arrays we are merging are [1] and [].
The result of the merge is [1].

Example 3:

Input: nums1 = [0], m = 0, nums2 = [1], n = 1
Output: [1]
Explanation: The arrays we are merging are [] and [1].
The result of the merge is [1].
Note that because m = 0, there are no elements in nums1. The 0 is only there to ensure the merge result can fit in nums1.

Solution:

class Solution(object):
    def merge(self, nums1, m, nums2, n):
        # 将 nums1 数组中从第 m 个元素开始到末尾的元素,用 nums2 数组中的元素替换掉
        nums1[m:] = nums2
        # 会去掉重复项
        nums1.sort()

标签:elements,merge,arrays,Merge,result,Sorted,Array,nums1,nums2
From: https://www.cnblogs.com/artwalker/p/17505286.html

相关文章

  • array的unshift
    Array unshift方法   ------------ 向数组的开头添加一个或更多的元素,返回新的长度。   /*@paramnewelement1必须@paramnewelement2可选*/arrayObject.unshift(newelement1,newelement2.....) 返回值:   arrayObject的新长度  注释:   unshift()方......
  • C++面试八股文:std::array如何实现编译器排序?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:你说的是原生数组还是std::array?面试官:你觉得两者有什么区别?二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,st......
  • C++面试八股文:std::array如何实现编译器排序?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:你说的是原生数组还是std::array?面试官:你觉得两者有什么区别?二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,std......
  • array的reduce
       ES5(js1.8)加入了reduce   接收一个函数,然后从左到右遍历item,直到reduce到一个值。 arr.reduce(callback,[initialValue]);   参数: callback(previousValue,currentValue,index,array)previousValue 如果指定了initialValue,那就用initialValue或......
  • 关于Java中ArrayList类的toArray方法详解
    先上源码:publicObject[]toArray(){returnArrays.copyOf(elementData,size);}可以看到ArrayList类的toArray()方法调用了Arrays.copyOf(elementData,size)(其中的elementData是ArrayList类中用来存储对象的数组,size是数组大小),接下来进入其内部:publicsta......
  • ArrayList和LinkedList的区别详解
    感谢巨人的肩膀,原作者:https://blog.csdn.net/qing_gee/article/details/108841587/ArrayList和LinkedList有什么区别,是面试官非常喜欢问的一个问题。可能大部分小伙伴和我一样,能回答出“ArrayList是基于数组实现的,LinkedList是基于双向链表实现的。”关于这一点,我之前的......
  • UE5 C++ TArray
    概述TArray是UE4中最常用的容器类。其速度快、内存消耗小、安全性高TArray类型由两大属性定义:元素类型和可选分配器元素类型是存储在数组中的对象类型。TArray被称为同质容器。换言之,其所有元素均完全为相同类型。单个TArray中不能存储不同类型的元素。分配器常被省略,默......
  • 手撕ArrayList底层源码
    publicabstractclassAbstractList<E>extendsAbstractCollection<E>implementsList<E>{//外部操作数protectedtransientintmodCount=0;//2}publicclassArrayList<E>extendsAbstractList<E>implementsList<E>{......
  • Remove Duplicates from Sorted List
    Giventheheadofasortedlinkedlist,deleteallduplicatessuchthateachelementappearsonlyonce.Returnthelinkedlistsortedaswell.Example1:Input:head=[1,1,2]Output:[1,2]Example2:Input:head=[1,1,2,3,3]Output:[1,2,3]Solution:......
  • 【Git】untracked files prevent merge
    拉取代码提示untrackedfilespreventmerge,原来是本地文件和线上代码文件名重复了,然后点击错误信息下面的ViewFiles,查看需要删除的文件。......