우리는 k번 오른쪽으로 회전한 배열의 m번째 요소를 찾는 JavaScript 프로그램을 작성하고 있습니다. 먼저, 배열 m과 k를 입력으로 받습니다. 그런 다음 루프를 사용하여 올바른 회전을 수행합니다. 루프가 반복될 때마다 배열의 마지막 요소를 첫 번째 위치로 이동합니다. 회전된 배열을 얻기 위해 이 루프를 k번 계속할 것입니다. 마지막으로 회전된 배열의 m번째 요소를 결과로 반환합니다.
배열을 k번 오른쪽 회전시킨 후 m번째 요소를 찾는 방법은 다음과 같이 분해될 수 있습니다. -
k 회전 후 m번째 요소의 실제 위치, 즉 (m-k) %n을 계산합니다. 여기서 n은 배열의 길이입니다.
계산된 위치가 음수인지 확인하세요. 이 경우 n을 추가하여 양수 위치로 변환할 수 있습니다.
배열의 계산된 위치에 있는 요소를 반환합니다.
이 솔루션을 최적화하려면 모듈로 연산자를 사용하여 계산된 위치를 배열 범위 내로 유지할 수 있으므로 음수 값을 확인할 필요가 없습니다.
최종 위치를 계산하고 해당 위치에서 요소를 검색하는 것은 상수 시간 작업이므로 이 솔루션의 시간 복잡도는 O(1)입니다.
솔루션에 추가 데이터 구조가 사용되지 않으므로 공간 복잡도는 O(1)입니다.
이것은 배열을 k번 오른쪽으로 회전한 후 m번째 요소를 찾는 JavaScript 프로그램의 예입니다.
으아아아findElement 함수는 배열 arr, 회전 수 k 및 찾을 m번째 요소를 허용합니다. p>
k = k % arr.length 라인은 큰 k 값을 처리한 후 배열에서 수행된 실제 회전 수를 계산합니다. 이는 배열을 길이 이상으로 회전해도 위치가 변경되지 않기 때문에 수행됩니다. 따라서 배열 길이를 모듈로 k 취하면 수행된 실제 회전 수가 제공됩니다.
Line return arr[(arr.length - k + m - 1) % arr.length];k 회전 후 m번째 요소의 위치를 계산합니다. arr.length - k 표현식은 k 회전 후 배열의 시작 위치를 제공하고, + m - 1은 m번째 요소의 위치를 제공하고, 마지막으로 배열 길이를 모듈로 취하면 위치가 순환됩니다. 범위를 벗어날 때 배열의 끝.
마지막으로 프로그램은 findElement 함수를 호출하고 결과를 기록합니다. 이 예에서는 출력이 4가 됩니다.
위 내용은 JavaScript 프로그램은 배열을 오른쪽으로 K번 회전한 후 M번째 요소를 찾습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!