图源:文心一言
上机题目练习整理,本篇作为线性表的代码补充,提供了两种(差别并不大)算法,供小伙伴们参考~🥝🥝
- 第1版:在力扣新手村刷题的记录
- 方法一:自己写的普通答案,借助辅助容器,循环+赋值;
- 方法二: 文心一言 老师提供的建议,借助辅助容器,循环+Push_back~🧩🧩
编辑:梅头脑🌸
题目:1470. 重新排列数组 - 力扣(LeetCode)
📇目录
🧵转换小写字母的题目
🧩题目
🌰方法一:常规赋值解法
📇算法思路
⌨️算法代码
class Solution {
public:
vector<int> shuffle(vector<int>& nums, int n) {
vector<int> nums1(2 * n); // 初始化nums1的大小为2n
for (int i = 0; i < n; i++) {
nums1[2 * i] = nums[i]; // 取x部分的元素
nums1[2 * i + 1] = nums[n + i]; // 取y部分的元素
}
return nums1;
}
};
⌨️温馨提示
🌰方法二:使用push_back
📇算法思路
⌨️算法代码
class Solution {
public:
vector<int> shuffle(vector<int>& nums, int n) {
vector<int> result; // 创建一个空的result vector
// 遍历数组的前半部分(x部分)和后半部分(y部分)
for (int i = 0; i < n; i++) {
// 依次将x部分的元素和y部分的元素添加到结果vector中
result.push_back(nums[i]); // 添加x部分的元素
result.push_back(nums[n + i]); // 添加y部分的元素
}
return result; // 返回重新排列后的数组
}
};
⌨️知识扩展
push_back功能
push_back性能
方法一与方法二的比较
🔚结语
博文到此结束,写得模糊或者有误之处,欢迎小伙伴留言讨论与批评,督促博主优化内容{例如有错误、难理解、不简洁、缺功能}等,博主会顶锅前来修改~~😶🌫️😶🌫️
我是梅头脑,本片博文若有帮助,欢迎小伙伴动动可爱的小手默默给个赞支持一下,感谢点赞小伙伴对于博主的支持~~🌟🌟
同系列的博文:🌸数据结构_梅头脑_的博客-CSDN博客
同博主的博文:🌸随笔03 笔记整理-CSDN博客