> 백엔드 개발 > C++ > 본문

2* 최소값이 최대값보다 크도록 양쪽에서 가장 작은 요소를 제거하는 C++ 프로그램

PHPz
풀어 주다: 2023-08-28 08:09:14
앞으로
1225명이 탐색했습니다.

2* 최소값이 최대값보다 크도록 양쪽에서 가장 작은 요소를 제거하는 C++ 프로그램

2*min이 max보다 큰 방식으로 정수 목록의 양쪽에서 요소를 제거하는 문제가 있습니다.

으아아아

무차별 대입 방법을 사용할 수 있습니다. 가능한 모든 만족을 시도하고 2*min > max 조건을 만족하는 가장 긴 하위 배열을 찾을 수 있습니다. 또한 동적 프로그래밍 방법을 사용하여 가능한 모든 과도하고 원치 않는 하위 배열 조합을 시도할 수 있습니다.

예(벡터 ADT 사용)

"[250, 10, 11, 12, 19, 200]"과 같은 배열이 있다고 가정해 보겠습니다. 최상의 솔루션을 얻으려면 요소 [250, 200]을 제거하여 최소값이 10이고 최대값이 19인 배열 [10, 11, 12, 19]를 형성해야 합니다. 따라서 2*10 > 19입니다. 배열에서 인쇄 중이므로 출력은 2입니다.

아래는 최소값의 두 배가 최대값보다 크도록 배열에서 최소 요소 수를 제거하는 방법을 설명하는 C++ 프로그램입니다. -

으아아아

출력

으아아아

예(벡터 ADT를 사용하지 않음)

다음은 벡터 ADT를 사용하지 않고 최소값의 두 배가 최대값보다 크도록 배열에서 최소 요소 수를 제거하는 방법을 설명하는 C++ 프로그램입니다. -

으아아아

출력

으아아아

결론

여기에서는 무차별 대입 방식을 사용하여 가장 긴 하위 배열을 찾습니다. 다른 가능한 솔루션에는 양쪽에서 요소를 반복적으로 팝하여 가능한 모든 하위 배열을 확인하는 방법과 다른 방법이 포함될 수 있습니다. 그럼에도 불구하고 구현은 노동 집약적이며 덜 최적화되어 있습니다. 여기서 시간 복잡도는 이미 모든 하위 배열을 반복했기 때문에 O(n^2)입니다.

위 내용은 2* 최소값이 최대값보다 크도록 양쪽에서 가장 작은 요소를 제거하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿