1652. 폭탄을 해체하세요
난이도: 쉬움
주제: 어레이, 슬라이딩 윈도우
해체할 폭탄이 있는데 시간이 얼마 남지 않았습니다! 귀하의 제보자는 길이가 n이고 키가 k인 원형 배열 코드를 제공할 것입니다.
코드를 해독하려면 모든 숫자를 바꿔야 합니다. 모든 숫자는 동시에 대체됩니다.
코드는 순환형이므로 코드[n-1]의 다음 요소는 코드[0]이고, 코드[0]의 이전 요소는 코드[n-1]입니다.
원형 배열 코드와 정수 키 k가 주어지면 폭탄을 해체하기 위한 해독된 코드를 반환하세요!
예 1:
예 2:
예 3:
제약조건:
힌트:
해결책:
코드 배열을 반복하고 k 값을 기준으로 적절한 숫자의 합을 계산하는 함수를 구현할 수 있습니다.
일반적인 접근 방식은 다음과 같습니다.
배열의 원형 특성은 배열 범위를 초과하는 인덱스의 경우 모듈로(%)를 사용하여 배열을 "둘러싸는" 수 있음을 의미합니다.
PHP에서 이 솔루션을 구현해 보겠습니다: 1652. 폭탄 해체
설명:
초기화:
- array_fill을 사용하여 0으로 초기화된 결과 배열을 생성합니다.
k == 0 처리:
- k가 0이면 출력 배열은 문제의 요구에 따라 단순히 0으로 채워집니다.
배열 반복:
- 배열의 각 인덱스 i에 대해:
- K > 0, 모듈로 산술을 사용하여 다음 k 요소를 합산하여 둘러쌉니다.
- k < 0, 이전 |k|의 합 음수 인덱스를 처리하기 위해 오프셋과 함께 모듈로 연산을 사용하는 요소.
모듈로 산술:
- n - 1보다 큰 인덱스에 액세스할 때 배열의 시작 부분을 둘러싸기 위해 ($i $j) % $n을 사용합니다.
- 마찬가지로 ($i - $j $n) % $n은 음수 인덱스에 대해 뒤로 줄 바꿈을 처리합니다.
복잡성:
- 시간 복잡도: O(n . |k|), 여기서 n은 배열의 크기이고 |k|는 절대값입니다. ㅋ.
- 공간 복잡도: 결과 배열의 경우 O(n)
출력:
제공된 예는 예상 결과와 일치합니다. 추가 설명이나 최적화가 필요하면 알려주세요!
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이런 유용한 콘텐츠를 더 원하시면 저를 팔로우해주세요.
위 내용은 폭탄을 해체하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!