2779. 연산 적용 후 배열의 최대 아름다움
난이도:중
주제: 배열, 이진 검색, 슬라이딩 윈도우, 정렬
인덱스가 0인 배열 nums와 음수가 아닌 정수 k가 제공됩니다.
한 번의 작업으로 다음을 수행할 수 있습니다.
- [0, nums.length - 1] 범위에서 이전에 선택되지 않은 인덱스 i를 선택합니다.
- nums[i]를 [nums[i] - k, nums[i] k] 범위의 정수로 바꿉니다.
배열의 아름다움은 동일한 요소로 구성된 가장 긴 부분 수열의 길이입니다.
연산을 여러 번 적용한 후 배열 숫자의 최대값을 반환합니다.
참고 각 인덱스에는 한 번만 작업을 적용할 수 있습니다.
배열의 하위 시퀀스는 나머지 요소의 순서를 변경하지 않고 일부 요소(없을 수도 있음)를 삭제하여 원래 배열에서 생성된 새 배열입니다.
예 1:
- 입력: nums = [4,6,1,2], k = 2
- 출력: 3
-
설명: 이 예에서는 다음 작업을 적용합니다.
- 인덱스 1을 선택하고 4(범위 [4,8]), nums = [4,4,1,2]로 바꿉니다.
- 인덱스 3을 선택하고 4(범위 [0,4]), nums = [4,4,1,4]로 바꿉니다.
- 적용된 연산 후 배열 nums의 아름다움은 3입니다(인덱스 0, 1, 3으로 구성된 하위 시퀀스).
- 3이 우리가 달성할 수 있는 최대 길이임을 입증할 수 있습니다.
예 2:
- 입력: nums = [1,1,1,1], k = 10
- 출력: 4
-
설명: 이 예에서는 어떤 작업도 적용할 필요가 없습니다.
- 배열 숫자의 아름다움은 4(전체 배열)입니다.
제약조건:
- 1 5
- 0 5
힌트:
- 배열을 정렬하세요.
- 문제는 다음과 같습니다. A[j] - A[i] ≤ 2 * k가 되는 최대 하위 배열 A[i … j]를 찾습니다.
해결책:
정렬과 슬라이딩 윈도우 방식을 활용할 수 있습니다.
접근하다:
- 배열 정렬: 정렬은 가장 큰 요소와 가장 작은 요소의 차이가 2k. 를 초과하지 않는 하위 시퀀스 식별을 단순화합니다.
- 슬라이딩 윈도우 기술: 인덱스 창 유지 [i, j] 차이 nums[j] - nums[i] . i 또는 j를 조정하여 창 크기를 최대화하세요.
PHP에서 이 솔루션을 구현해 보겠습니다: 2779. 연산 적용 후 배열의 최대 아름다움
<?php /** * @param Integer[] $nums * @param Integer $k * @return Integer */ function maximumBeauty($nums, $k) { ... ... ... /** * go to ./solution.php */ } // Example Usage: $nums1 = [4, 6, 1, 2]; $k1 = 2; echo maximumBeauty($nums1, $k1) . "\n"; // Output: 3 $nums2 = [1, 1, 1, 1]; $k2 = 10; echo maximumBeauty($nums2, $k2) . "\n"; // Output: 4 ?>
설명:
-
배열 정렬:
- 정렬을 사용하면 인덱스 [i, j]로 정의된 창에 모든 요소가 오름차순으로 포함되므로, 창문.
-
슬라이딩 창:
- 처음에는 i와 j를 모두 시작하세요.
- j를 증가시켜 창을 확장하고 nums[j] - nums[i] > 조건이 충족될 때마다 i를 증가시켜 창을 유효하게 유지합니다. 2k 위반입니다.
- 각 단계에서 현재 유효한 창 j - i 1의 크기를 계산하고 maxBeauty를 업데이트합니다.
복잡성 분석:
-
시간 복잡성:
- 배열 정렬: O(n log n).
- 슬라이딩 윈도우 순회: O(n).
- 전체: O(n log n).
-
공간 복잡성:
- O(1), 솔루션은 몇 가지 추가 변수만 사용하기 때문입니다.
예:
입력 1:
$nums = [4, 6, 1, 2]; $k = 2; echo maximumBeauty($nums, $k); // Output: 3
입력 2:
$nums = [1, 1, 1, 1]; $k = 10; echo maximumBeauty($nums, $k); // Output: 4
이 솔루션은 제약 조건을 준수하고 대규모 입력에 대한 결과를 효율적으로 계산합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이런 유용한 콘텐츠를 더 원하시면 저를 팔로우해주세요.
- 링크드인
- 깃허브
위 내용은 작업 적용 후 배열의 최대 아름다움의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

TomakePhPapplicationSfaster, followthesesteps : 1) useopCodeCaching likeOpcachetOrpectipiledScriptBecode.2) MinimizedAtabaseQueriesByUsingQueryCachingandEfficientIndexing.3) leveragephp7 assistorBetterCodeeficiession.4) 구현 전략적 지시

toImprovePhPapplicationSpeed, followthesesteps : 1) enableOpCodeCachingWithApcuTeCeScripteXecutionTime.2) 구현 구현

의존성 주입 (DI)은 명시 적으로 전이적 종속성에 의해 PHP 코드의 테스트 가능성을 크게 향상시킵니다. 1) DI 디퍼 커플 링 클래스 및 특정 구현은 테스트 및 유지 보수를보다 유연하게 만듭니다. 2) 세 가지 유형 중에서, 생성자는 상태를 일관성있게 유지하기 위해 명시 적 표현 의존성을 주입합니다. 3) DI 컨테이너를 사용하여 복잡한 종속성을 관리하여 코드 품질 및 개발 효율성을 향상시킵니다.

DatabaseQuesyOptimizationInphPinVolvesVesstoigiestoInsperferferferferformance.1) SelectOnlyNecessaryColumnstoredAtatatransfer.2) useinDexingTeSpeedUpdatarretieval.3) ubstractOrerEresultSoffRequeries.4) UtilizePreDstatements Offeffi

phpisusedforendingemailsduetoitsbuitsbuitsbuit-inmail () functionandsupportivelibraries lifephpmailerandswiftmailer.1) usethemail () functionforbasicemails, butithaslimitations.2) EmployPhpmailerforAdvancedFeatirehtMailsAndAtachments.3))

PHP 성능 병목 현상은 다음 단계를 통해 해결할 수 있습니다. 1) 성능 분석을 위해 Xdebug 또는 Blackfire를 사용하여 문제를 찾으십시오. 2) 데이터베이스 쿼리 최적화 및 APCU와 같은 캐시 사용; 3) Array_Filter와 같은 효율적인 기능을 사용하여 배열 작업을 최적화합니다. 4) 바이트 코드 캐시에 대한 OpCache 구성; 5) HTTP 요청을 줄이고 사진 최적화와 같은 프론트 엔드 최적화; 6) 지속적으로 모니터링하고 성능을 최적화합니다. 이러한 방법을 통해 PHP 응용 프로그램의 성능을 크게 향상시킬 수 있습니다.

종속성 주사 (di) inphpisadesignpattern thatmanages 및 enpleducesclassdelencies, 향상 codemodularity, trestability 및 maintainability .itallowspassingDepporsingDikedAbaseConnectionStoclassesAssparameters, 촉진 이용성.

cachingimprovesphpperferferfermanceStoringResultsOfcomputationSorqueriesforquickRetrieval, retingServerloadandenhancancing responsetimestimes : 1) opcodecaching, opcodecaching, whitescompiledphps scriptsinmorytoskipcompileation; 2) dataCachingUsingmemmc


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

드림위버 CS6
시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는