
学计算机的,这个问题不太懂,不知道如何代码,希望可以陈述一下,谢谢大家
// 思路:从后往前将数组中元素往后挪一个位置,将目标位置空出来,把新的元素插入到空出的位置
#include <iostream>
#include <vector>
using namespace std;
// 输出数组
void printNums(vector<int>& nums) {
for (int i = 0; i < nums.size(); ++i) {
cout << nums[i] << " ";
}
cout << endl;
}
vector<int> addNewNum(vector<int>& nums, int idx, int newNum) {
/*
nums: 表示原来的数组
idx: 表示新增加的元素放置在原数组中的位置,从 0 开始
newNum: 表示新增加的元素
*/
nums.push_back(-1); // 一个占位符,也就是在原数组后增加一个空位,方便将前一个元素挪位
int n = nums.size();
for (int i = n-2; i >= idx; --i) {
nums[i + 1] = nums[i];
}
nums[idx] = newNum;
return nums;
}
int main() {
// 比如说 nums = {1, 5, 6, 7 ,8} 在第三个数后面插入一个数 10 后,输出新的数组
vector<int> nums = { 1, 5, 6, 7, 8};
int idx = 3;
int newNum = 10;
cout << "原来的数组:" << endl;
printNums(nums);
vector<int> ret = addNewNum(nums, idx, newNum);
cout << "新增元素后的数组:" << endl;
printNums(nums);
return 0;
}