所有元素右移一个单位,最后一个元素环绕到开头。
[0,1,3,3,4],将其修改为包含[4,0,1,3,3],但这使其更新为包含[4,0,3,3,3 ]
void shiftRight(int arr[], int n) {
int temp = arr[n - 1];
const int *end = arr + n - 1;
for (const int *i = end; i > arr; i--) {
arr[*i] = arr[*i - 1];
}
arr[0] = temp;
}
该数组未正确更新。阵列更新有什么问题?
答案 0 :(得分:0)
您正在将指向数组的指针与索引混淆:
df[df.apply(lambda x: x.Name.upper() in x.Title.upper(), axis=1) == True]
# Output
Name Value Title
1 donald 10 welcome to donald's castle
2 minnie 86 Minnie mouse clubhouse
您正在将arr[*i] = arr[*i - 1]
与i
进行比较,这表明存在严重错误!
您的循环实际上是:
arr
指针不能为int *end = arr + n - 1;
for (int *i = end; i > arr; i--) {
*i = *(i - 1);
,您正在修改数组。
答案 1 :(得分:0)