翻转数组
描述
原地翻转给出的数组 nums
原地意味着不能使用额外空间
【样例】
样例 1:
输入 : nums = [1,2,5]
输出 : [5,2,1]
【方法】
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
void reverseArray(vector<int> &nums) {
int size = nums.size();
int sizeSub = size / 2;
for (int i = 0; i < sizeSub; i++) {
nums[i] = nums[i] + nums[size - 1 - i];
nums[size - 1 - i] = nums[i] - nums[size - 1 - i];
nums[i] = nums[i] - nums[size - 1 - i];
}
}
int main() {
vector<int> nums;
int totals = 0;
printf("请输入测试数据个数:");
while (scanf("%d", &totals) != EOF) {
printf("\n请输入 nums 的内容:\n");
for (int i = 0; i < totals; i++) {
int n = 0;
scanf("%d", &n);
nums.push_back(n);
}
reverseArray(nums);
printf("\n原地翻转 nums 后的内容:\n");
int size = nums.size();
for (int i = 0; i < size; i++) {
printf("%d ", nums[i]);
}
printf("\n");
nums.clear();
printf("========================\n\n请输入测试数据个数:");
}
return 0;
}
【结果】
请输入测试数据个数:5
请输入 nums 的内容:
1 3 5 10 6
原地翻转 nums 后的内容:
6 10 5 3 1
========================
请输入测试数据个数:4
请输入 nums 的内容:
3 69 52 18
原地翻转 nums 后的内容:
18 52 69 3
========================
请输入测试数据个数:3
请输入 nums 的内容:
1 2 5
原地翻转 nums 后的内容:
5 2 1
========================
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)