leetcode 3069. 将元素分配到两个数组中 I 简单

给你一个下标从 1 开始、包含不同 整数的数组 nums ,数组长度为 n

你需要通过 n 次操作,将 nums 中的所有元素分配到两个数组 arr1arr2 中。在第一次操作中,将 nums[1] 追加到 arr1 。在第二次操作中,将 nums[2] 追加到 arr2 。之后,在第 i 次操作中:

  • 如果 arr1 的最后一个元素 大于 arr2 的最后一个元素,就将 nums[i] 追加到 arr1 。否则,将 nums[i] 追加到 arr2

通过连接数组 arr1arr2 形成数组 result 。例如,如果 arr1 == [1,2,3]arr2 == [4,5,6] ,那么 result = [1,2,3,4,5,6]

返回数组 result

示例 1:

复制代码
输入:nums = [2,1,3]
输出:[2,3,1]
解释:在前两次操作后,arr1 = [2] ,arr2 = [1] 。
在第 3 次操作中,由于 arr1 的最后一个元素大于 arr2 的最后一个元素(2 > 1),将 nums[3] 追加到 arr1 。
3 次操作后,arr1 = [2,3] ,arr2 = [1] 。
因此,连接形成的数组 result 是 [2,3,1] 。

示例 2:

复制代码
输入:nums = [5,4,3,8]
输出:[5,3,4,8]
解释:在前两次操作后,arr1 = [5] ,arr2 = [4] 。
在第 3 次操作中,由于 arr1 的最后一个元素大于 arr2 的最后一个元素(5 > 4),将 nums[3] 追加到 arr1 ,因此 arr1 变为 [5,3] 。
在第 4 次操作中,由于 arr2 的最后一个元素大于 arr1 的最后一个元素(4 > 3),将 nums[4] 追加到 arr2 ,因此 arr2 变为 [4,8] 。
4 次操作后,arr1 = [5,3] ,arr2 = [4,8] 。
因此,连接形成的数组 result 是 [5,3,4,8] 。

提示:

  • 3 <= n <= 50
  • 1 <= nums[i] <= 100
  • nums中的所有元素都互不相同。

分析:模拟,用两个指针分别指向 arr1 和 arr2 的最后一个元素,按照题目要求分别分配 nums 数组中的元素,最后拼接成一个数组即可。

cpp 复制代码
class Solution {
public:
    vector<int> resultArray(vector<int>& nums) {
        vector<int>vec1,vec2;
        vec1.push_back(nums[0]),vec2.push_back(nums[1]);
        int n=nums.size(),l=0,r=0;
        for(int i=2;i<n;++i)
        {
            if(vec1[l]>vec2[r])vec1.push_back(nums[i]),l++;
            else vec2.push_back(nums[i]),r++;
        }
        for(int i=0;i<=r;++i)
            vec1.push_back(vec2[i]);
        return vec1;
    }
};
相关推荐
不会就选b2 小时前
算法日常・每日刷题--<贪心>7
数据结构·算法·leetcode
smj2302_796826528 小时前
解决leetcode第4017题数组中的峰值II
python·算法·leetcode
午彦琳8 小时前
2026.9.9
数据结构·算法·leetcode
橘子汽水1689 小时前
Leetcode 200,994岛屿数量,腐烂的橘子
数据结构·算法·leetcode
Tisfy11 小时前
LeetCode 3871.统计范围内的逗号 II:每次算一个逗号
数学·算法·leetcode·题解
find1star12 小时前
LeetCode 54:螺旋矩阵——用四个边界模拟矩阵收缩
java·算法·leetcode·边缘计算·学习方法
吞下星星的少年·-·12 小时前
LeetCode 热题 100 两数之和(哈希表)
算法·leetcode·哈希算法
土司大王13 小时前
LeetCode hot100——全排列
java·算法·leetcode
203号居民13 小时前
LeetCode hot 100 — 138. 随机链表的复制
算法·leetcode·链表
土司大王14 小时前
LeetCode hot100——实现 Trie (前缀树)
java·算法·leetcode