#include
void rotate(int* nums, int size, int k);
int main() {
int nums[101]; int k = 3;
int n = 0; scanf("%d", &n);
printf("需要输入%d个数组元素\n",n);
for (int i = 0; i < n; i++)
scanf("%d", &nums[i]);
rotate(nums, n, k);
printf("\n旋转后数组为:\n");
for (int i = 0; i < n; i++)
printf("%d ", nums[i]);
return 0;
}
void rotate(int* nums, int size, int k)
{
k %= size;
int* arr = (int*)malloc(sizeof(int) *size);
int count = 0;
for (int i = size - k; i < size; i++)
{
arr[count] = nums[i];//先把需要颠倒的先拷贝到新数组
count++;
}
for (int j = 0; j //把后需要颠倒的拷贝到新数组
count++;
}
for (int k = 0; k < size; k++)
{
nums[k] = arr[k];
}
}
void rotate(int* nums, int size, int k)
调试下,size传进来是多少
动态规划(DP)的定义:动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。
动态规划具备了以下三个特点:
- 把原来的问题分解成了几个相似的子问题。
- 所有的子问题都只需要解决一次。
- 储存子问题的解
并且我们通常从以下的四个角度来出发(重要)