其他分享
首页 > 其他分享> > leetcode刷题第一天

leetcode刷题第一天

作者:互联网

给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < n 的 i ,满足下述所有要求:

ans[i] == nums[i]
ans[i + n] == nums[i]
具体而言,ans 由两个 nums 数组 串联 形成。

返回数组 ans 。

class Solution:

    def getConcatenation(self, nums: List[int]) -> List[int]:

        a = nums

        for i in range(len(nums)):

            a.append(nums[i])

        return a

给定两个数组,arr1 和 arr2,

arr2 中的元素各不相同
arr2 中的每个元素都出现在 arr1 中
对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。

示例:

输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
输出:[2,2,2,1,4,3,3,9,6,7,19]

class Solution:

    def relativeSortArray(self, arr1: List[int], arr2: List[int]) -> List[int]:

        num_freq = collections.Counter(arr1)

        res = []

        for i in arr2:

            res += [i] * num_freq[i]

            num_freq[i] = 0

        for i in range(1001):

            if num_freq[i] > 0:

                res += [i] * num_freq[i]

        return res

标签:第一天,nums,int,arr2,arr1,ans,freq,leetcode,刷题
来源: https://blog.csdn.net/m0_62200631/article/details/120941311