首页 > 小红书9.6笔试题
头像
312的LG
编辑于 2020-09-07 15:53
+ 关注

小红书9.6笔试题

为什么我的代码只通过78%,请大佬指点一下。题意和代码如下:
题目:给出一个长度为 n 的数组,对数组的某个区间进行排序就可以使整个数组变为有序数组,请输出这个需要排序的区间,若是原数组本身是有序的,则输出  -1,-1
例如
输入
3
1 3 2
输出
1
2

输入
4
1 2 3 4
输出
-1
-1
#include <iostream>
#include <vector>
#include<algorithm>

using namespace std;

int main() {

	int n;
	cin >> n;
	vector<int> num;
	vector<int> cop;

	for (int i = 0; i < n; i++) {
		int te;
		cin >> te;
		num.push_back(te);
		cop.push_back(te);
	}
	sort(num.begin(), num.end());

	int start = -1;
	int end = -1;

	for (int i = 0; i < n; i++) {
		if (num[i ] != cop[i]) {
			start = i;
			break;
		}
	}
	for (int i = n - 1; i >= 0 & start >= 0; i--) {
		if (num[i] != cop[i]) {
			end = i;
			break;
		}
	}
	cout << start << endl;
	cout << end << endl;

	return 0;
}


全部评论

(1) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐