有没有大佬能来抨击一下我的代码,真的感觉没问题啊
查看原帖
有没有大佬能来抨击一下我的代码,真的感觉没问题啊
1339652
YH2605楼主2024/9/28 23:35
#include<iostream>
using namespace std;
int arr[200010];
int main(){
	int tmax=0;
	int n;
	cin>>n;
	//12 1 1 0 0 1 1 1 0 1 1 0 0
	//-1 1 -1 0 -1 1 1 -1 -1 1 -1 0
	for(int i=1;i<=n;i++){
		cin>>arr[i];
	}
	arr[n+1]=-1;
	bool flag=1;
	int r=0;
	while(true){
		flag=1;
		int i=0;
		int temp=-1; //前一个块是哪个水果 
		while(i<=n){
			//如果当前已经属于此块或者被拿走了 
			if(arr[i]==-1 || arr[i]==temp) i++;
			//否则重新创块 
			else{
				temp=arr[i];
				cout<<i<<" ";
				arr[i]=-1;
				i++;
				flag=0; 
			}
		}
		cout<<endl;
		if(flag) break;
	}
} 

这是我自己想出来的方案,没有用队列,样例全对但是测试全错,直觉告诉我我不可能这么聪明,想出这么简单的算法,所以求大佬告诉我一下我哪里理解错了?(

2024/9/28 23:35
加载中...