注销网站 注销主体,和幼儿做网站,石家庄在哪个省,动漫设计属于什么大类给你一个下标从 1 开始、包含 不同 整数的数组 nums #xff0c;数组长度为 n 。
你需要通过 n 次操作#xff0c;将 nums 中的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操作中#xff0c;将 nums[1] 追加到 arr1 。在第二次操作中#xff0c;将 nums[2] 追加到 …给你一个下标从 1 开始、包含 不同 整数的数组 nums 数组长度为 n 。
你需要通过 n 次操作将 nums 中的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操作中将 nums[1] 追加到 arr1 。在第二次操作中将 nums[2] 追加到 arr2 。之后在第 i 次操作中
如果 arr1 的最后一个元素 大于 arr2 的最后一个元素就将 nums[i] 追加到 arr1 。否则将 nums[i] 追加到 arr2 。 通过连接数组 arr1 和 arr2 形成数组 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中的所有元素都互不相同。
直接模拟即可
class Solution {
public:vectorint resultArray(vectorint nums) {vectorint arr1 {nums[0]};vectorint arr2 {nums[1]};for (int i 2; i nums.size(); i){if (arr1.back() arr2.back()){arr1.push_back(nums[i]);}else{arr2.push_back(nums[i]);}}arr1.insert(arr1.end(), arr2.begin(), arr2.end());return arr1;}
};如果nums的长度为n此算法时间按复杂度为O(n)空间复杂度为O(n)。