본문 바로가기
알고리즘/메모

구간 만들기

by sun__ 2020. 3. 9.

자주나오니까 복붙하지말고 따라서 타이핑

 

0또는 1로 이뤄진 불린타입 배열 a에서 1 구간을 vector<P> a에 {시작점, 끝점} 끝점으로 넣는 코드

int lo = -1, hi = -1;
for (int i = 0; i < n; i++) {
	if (a[i] == 1) {
		if (lo == -1 || (i > 0 && a[i - 1] == 0)) 
			lo = hi = i;
		else 
			hi++;

		if (i == n - 1) ap.push_back({ lo,hi });
	}
	else if (a[i - 1] == 1) ap.push_back({ lo,hi });
}