题解 | #数组元素反转#

数组元素反转

http://www.nowcoder.com/practice/8c9793ae96974a9ebb153d90ef31d357

题目的主要信息:

  • 随机输入6个整数到数组中,按照格式输出该数组(题目已经输出)
  • 将数组元素逆序,按照各自再次输出逆序后的数组(题目代码已给出输出部分)

具体做法:

输入输出代码都已经给出,我们的主要任务就是将数组元素逆序。

逆序就是首到尾,尾到首,因此我们可以想到用双指针指向数组的首尾元素,交换其位置,指针再不断向中间靠拢,不断交换位置。

alt

#include <iostream>
using namespace std;

int main() {

	int arr[6] = { 0 };

	int len = sizeof(arr) / sizeof(int);
	
	for (int i = 0; i < len; i++) {
		cin >> arr[i];
	}

	cout << "["; //题目输出正序数组
	for (int i = 0; i < len; i++) {
		if (i == len - 1) {
			cout << arr[i] << "]" << endl;
			break;
		}
		cout << arr[i] << ", ";
	}

	// write your code here......
    int left = 0, right = 5; //双指针从首尾开始
    while(left < right){
        int temp = arr[left]; //交换指针元素
        arr[left] = arr[right];
        arr[right] = temp;
        left++; //指针向中间靠
        right--;
    }

	cout << "["; //题目输出逆序数组
	for (int i = 0; i < len; i++) {
		if (i == len - 1) {
			cout << arr[i] << "]" << endl;
			break;
		}
		cout << arr[i] << ", ";
	}

	return 0;
}

复杂度分析:

  • 时间复杂度:O(n)O(n)O(n)nnn为数组长度,循环次数为数组长度的一半
  • 空间复杂度:O(1)O(1)O(1),无额外空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论
我悟了,谢谢你!
1 回复 分享
发布于 2022-01-20 16:18

相关推荐

wu970:标准北漂配置,怎么看着装修风格有点像自如的😭
点赞 评论 收藏
分享
AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
评论
20
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务