인접 한 중복 요소 삭제
778 단어 알고리즘
사상: 이 문제 의 해결 방법 은 '현지 창고' 라 는 개념 을 사용한다.이 배열 을 창고 로 사용 하 는 것 입 니 다.스 택 에 있 는 요소 가 현재 숫자 와 같 지 않 을 때 현재 숫자 를 스 택 에 넣 는 것 입 니 다.현재 숫자 가 스 택 상단 요소 와 같 으 면 이 숫자 를 건 너 뛰 고 스 택 상단 요소 와 다른 숫자 를 찾 고 스 택 상단 요 소 를 삭제 하 는 것 을 알 수 있 습 니 다.
시간 복잡 도: O (n), 공간 복잡 도 O (n), 스 택 공간의 비용 에 사용 합 니 다.
알고리즘:
public static int removeAdjacentDuplicates(int[] a){
int s = -1;
int i = 0;
while(i < a.length) {
if(s == -1 || a[s] != a[i]) {
a[++s] = a[i];
i++;
} else {
while(i < a.length && a[i] == a[s]) {
i++;
}
s--;
}
}
return s;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.