지난 이틀간 어떤 마스터의 github을 보다가 그가 알고리즘에 더 관심이 있다는 것을 알게 되었고, 숫자를 계산하는 알고리즘 중 하나를 보고 흥미로워서 구현해 보았습니다. 나 자신.
알고리즘 설명 및 구현 원리
정수로 목표에 도달할 수 있는 동작 수를 계산합니다. 예를 들어 숫자 4는 다음과 같은 동작을 가질 수 있습니다.
사실 위의 조합을 통해 다음과 같은 결론이 도출될 수 있습니다.
1. 먼저 항목이 1인 모든 조합을 나열합니다
2. 왼쪽부터 아이템이 1개인 조합
3. 위 집합을 재귀적으로 실행하여 항목에서 1의 인덱스를 찾은 후 왼쪽부터 2개 항목의 값을 계산하면 결과는 재귀연산입니다
4. 상황 1과 2를 제외하세요
다음 세 가지 도구 기능이 제공됩니다.
//배열의 값을 출력합니다
함수 인쇄(arg){
for(var i = 0; i
console.log(arg[i]);
}
}
//정방향 이동인지 역방향 이동인지 확인
함수 hasRepeat(src, dist){
(dist.length != 2)인 경우 false를 반환합니다.
for(var i = 0, len = src.length; i
If(dist.length == src[i].length){
If(dist[0] == src[i][1]){
true를 반환합니다.
}
}
}
거짓을 반환합니다.
}
알고리즘 구현은 아래와 같습니다.
//실행
countSteps(4);
//다음 내용 출력
/*
[ 1, 3 ]
[ 4 ]
[ 1, 1, 2 ]
[ 2, 2 ]
[ 1, 1, 1, 1 ]
총 5가지 걷기 유형이 있습니다
*/
요약
이 알고리즘은 실제로 특정 유형의 게임에 적용될 수 있습니다. 두 개체 사이의 거리가 일정할 경우 모든 가능성이 처리될 수 있습니다. 물론 대부분의 프런트엔드 엔지니어는 그렇지 않습니다. 알고리즘에 대한 지식은 상대적으로 적지만 여전히 가치가 있습니다. 알고리즘은 실제로 많은 UI 세부 사항에 사용됩니다. 앞으로 시간이 나면 더 많은 귀중한 의견을 게시하겠습니다. 🎜>