동적 프로그래밍은 특정 문제를 여러 개의 간단한 하위 문제로 나누어 해결하는 최적화 알고리즘 기술입니다. 이 과정을 통해 완전한 검색을 통해 얻은 품질, 조건 또는 사실을 결합하여 정확하고 정확한 탐욕 알고리즘을 얻을 수 있습니다. 그러나 이러한 접근법은 그 자체로 모순이다. 왜냐하면 그것은 큰 장점을 가지고 있지만 동시에 가장 큰 단점이자 한계이기도 하기 때문이다. 문제를 하위 문제로 나눌 수는 있지만 하위 문제로 나눌 수는 없습니다. 스스로 해결해야 합니다. 하위 문제의 개념은 본질적으로 고도로 최적화되어 있기 때문에 더 중요한 문제를 해결하는 데 사용될 수 있습니다.
코인은 총 금액을 나타내는 정수의 합을 나타내는 배열의 구성 요소입니다. 이 과정에서 총액의 균형을 맞추기 위해 일부 코인을 반환해야 합니다. 빌드되지 않은 경우 -1을 반환합니다.
코인 교환에는 두 가지 솔루션이 있습니다 -
재귀 - 간단하고 느린 방법입니다.
동적 프로그래밍 - 시의적절하고 효율적인 방법
컴퓨터 과학에서 동전의 응용 -
변경사항 배포용.
인접한 행에 있는 코인의 가치를 점차적으로 높이는 과정은 다음과 같습니다.
1단계 - 시작
2단계 - 길이가 n+1인 새로운 배열 구성
3단계 - 단방향 처리를 위해 동적 prog[0]을 1로 설정합니다.
4단계 - 값 반복
5단계 - Dynamicprog[index-coins[i]] 값을 Dynamicprog[index]
6단계 - 1에서 n까지의 범위를 설정하세요
7단계 - 값 반환
8단계 - 종료
다음은 C++ 환경에서 가능한 코인 변경 구문입니다. 이 구문을 적용함으로써 우리는 이 코인을 완전히 이해하기 위한 몇 가지 코드를 구축할 것입니다.
방법 1 - 최대 동전 수를 찾는 재귀 C++ 프로그램
방법 2−인접한 행과 열의 코인을 수집할 수 없을 때 코인의 가치를 극대화합니다
이 코드에서는 동적 프로그래밍을 적용합니다. 논리는 arr[i][j + 1] 및 arr[i][j – 1]입니다.
이 C++ 코드에서는 막다른 골목에 도달하기 전에 가장 많은 코인을 찾아 수집하는 방법을 적용했습니다.
한 단계 앞으로 이동, 즉 셀(i, j+1) 방향은 그대로 유지됩니다.
한 단계 아래로 이동하여 왼쪽을 향합니다. 즉 셀(i+1, j)을 누르면 방향이 왼쪽으로 변경됩니다.
오늘 이 글에서는 가능한 C++ 코드와 알고리즘을 구축하여 인접한 행에서 수집할 수 없는 열에서 코인의 가치를 최대화하는 방법을 배웠습니다.
위 내용은 인접한 행과 열에서 수집할 수 없는 코인의 가치를 극대화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!