레벨 캐싱 없이 배열에 핸들러를 적용하시겠습니까?

WBOY
풀어 주다: 2024-02-06 09:42:08
앞으로
740명이 탐색했습니다.

레벨 캐싱 없이 배열에 핸들러를 적용하시겠습니까?

질문 내용

전체 순열을 반환하지 않고 모든 입력 순열에 지정된 핸들러를 적용하는 함수를 작성하고 싶습니다.

코드

(go에서)

  • 배정 찾기:

    으아아아
  • 테스트 케이스(간단):

    으아아아

지침

  • 위의 함수 findallpermutationapplyhandler()는 순열을 찾아 각 조합에 지정된 핸들러를 적용합니다.
  • 하지만 이전 n-1 레벨 (가장 최근 2개 레벨을 동시에) 을 캐시해야 합니다.
  • 더 이상 레벨이 캐싱에 의존하지 않으므로 최종 레벨에서는 캐싱을 피했습니다.

질문

    1. 마지막 2레벨의 캐싱을 방지하는 것이 가능한가요?

      (일명, 공간 복잡성을 o(1)o(n),甚至我猜 o(n^2) 더 좋게 만듭니다). .

    1. 하지만 레벨i 是基于级别 i-1 때문에 그건 불가능해 보이는데요?
    1. 그렇다면 공간 복잡성을 줄이는 더 나은 알고리즘이 있습니까? (재귀 대신) 반복이 선호됩니다.

정답


찾으시는 것 같네요Pandita Algorithm

이것은 사전순으로 배열의 모든 순열을 반복하는 간단한 방법입니다.

그러나 배열의 요소를 정렬할 수 있어야 합니다. 그렇지 않은 경우(일반 유형이기 때문에) 모든 배열 인덱스의 보조 배열을 만들고 해당 순열을 생성할 수 있습니다.

위 내용은 레벨 캐싱 없이 배열에 핸들러를 적용하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!