>웹 프론트엔드 >JS 튜토리얼 >JavaScript는 array_javascript 기술에서 가장 긴 연속 숫자 나열을 구현합니다.

JavaScript는 array_javascript 기술에서 가장 긴 연속 숫자 나열을 구현합니다.

WBOY
WBOY원래의
2016-05-16 16:23:271151검색

원제:

정렬되지 않은 정수 시퀀스가 ​​주어지면 연속된 숫자의 가장 긴 시퀀스를 찾습니다.

예:

주어진 [100, 4, 200, 1, 3, 2],

가장 긴 연속 숫자는 [1, 2, 3, 4]입니다.

Xiao Cai가 제공한 솔루션:

코드 복사 코드는 다음과 같습니다.

함수 maxSequence(배열,단계){
var _array = array.slice(), //배열 복제
_단계 = 1,
​ _arrayTemp = [],
나는 = 0;
var parparLogic = {
//결과 컨테이너
구문 분석 결과: [],
//값을 배열로 설정합니다.parseResults의 마지막 배열은 무엇입니까
설정: 함수(n){
This.parseResults[this.parseResults.length-1].push(n);
},
//parseResults에서 마지막 배열을 가져옵니다
가져오기: 함수(){
this.parseResults[this.parseResults.length-1];
반환 },
//parseResults에 새 배열 넣기
항목 추가: 함수(){
This.parseResults.push([]);
},
//parseResult 정렬
SortByAsc: 함수(){
This.parseResults.sort(function(a,b){
           a.length - b.length;
반환 });
}
};
//매개변수 확인
_step = 단계 || _step;
//오름차순으로 배열 정렬
_array.sort(함수(a,b){
a - b 반환;
});
//반복 데이터 제거
for(i = 0;i<_array.length;i ){
If(_array[i] != _array[i 1]){
​ _arrayTemp.push(_array[i]);
}
}
_array = _arrayTemp.slice();
_arrayTemp = [];
//배열 분석
parsLogic.addItem();
for(i = 0;i<_array.length;i ){
If(_array[i] _step == _array[i 1]){
      parseLogic.set(_array[i]);
계속하세요;
}
If(_array[i]-_step == _array[i-1]){
      parseLogic.set(_array[i]);
      parseLogic.addItem();
}
}
//결과 정렬
parsLogic.sortByAsc();
//최대 시퀀스 가져오기
ParseLogic.get()을 반환합니다.
}


전화 안내:

메소드 이름:

maxSequence(배열,단계)

매개변수 설명:

배열: 검색할 배열입니다. 필요한.

단계: 시퀀스 단계(증분). 선택 사항이며 기본값은 1입니다.

반환 값:

이 메서드는 전달된 배열을 변경하지 않지만 가장 큰 시퀀스가 ​​포함된 새 배열을 반환합니다.

통화 예시:

maxSequence([5,7,2,4,0,3,9],1) //return [2,3,4,5]

maxSequence([5,7,2,4,0,3,9],2) //return [5,7,9]

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.