1. 声明变量时
int temp[k];
这里就要保证k是大于零的, 否则会出错
2. 加减乘除时
int temp[k-1];
int temp[k+1];
int tmep[2*k]
3. 字符串最后一个为"\0",要一个下标
char ch[2] = "a";
4. 移动时没有考虑越界情况
k = k %nums.size();//避免越界
练习题目
:力扣189. 旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
void rotate(vector<int>& nums, int k){
k = k % nums.size();
if(k == 0){
return;
}
int temp[k];
for (int i = 0; i < k; i++){
temp[i] = nums[nums.size() - k + i];
}
for (int i = nums.size() - k - 1; i >= 0; i--){
nums[i + k] = nums[i];
}
for (int i = 0; i < k; i++){
nums[i] = temp[i];
}
}
小笑话: 我这道题目一开始左右不分, 哎~