메모와 동적 프로그래밍 접근 방식을 사용하여 : 동적 프로그래밍 기술은 주로 보고하지 않고, 로컬 의사 결정에 따라 최적화를 시도 욕심 알고리즘과는 달리 수학 유도의 원리를 기반으로 이전에 계산된 정보 나 테이블을 계산했습니다. 욕심 알고리즘의 일부 고전적인 경우는 욕심 배낭 문제, 허프만 압축 트리, 작업 일정입니다. 삽입 정렬은 동적 프로그래밍의 예이며, 선택 정렬은 탐욕스러운 알고리즘의 예이며 병합 정렬 및 빠른 정렬은 분할 및 정복의 예입니다. 따라서 이 경우 정렬과 같은 목표를 달성하는 데 다양한 범주의 알고리즘이 사용될 수 있습니다. 이 문서에서는 동적 프로그래밍을 소개하고 DEMO 코드의 두 가지 예제인 텍스트 자리 맞추기 및 가중치 기반 방향 비순환 그래프에서 가장 짧은 경로를 찾는 두 가지 예제를 제공합니다. 초코[i:j]의 기쁨은 직접 계산(기본 케이스)이거나 초코[i+1:j]와 초코[i:j-1]의 이미 알려진 기쁨으로부터 일정한 시간에 계산될 수 있습니다. 동적 프로그래밍을 사용하고 이러한 하위 결과를 모두 기억하면 O(n2) 시간 복잡성이 있는 알고리즘을 얻을 수 있습니다. 동적 프로그래밍 및 재귀는 겹치지 않는 하위 문제의 경우 거의 유사한 방식으로 작동합니다. 이러한 문제에서 다른 접근 방식은 „분할 및 정복“과 같은 사용할 수 있습니다. 동적 프로그래밍의 규칙 자체는 간단합니다. 가장 어려운 부분은 동적 프로그래밍으로 문제를 해결할 수 있는지 여부와 하위 문제가 무엇인지 추론하는 것입니다.
다른 많은 것들, 연습은 개선을, 신속하게 솔루션을 보고하지 않고 몇 가지 문제를 찾아주세요 (이는 가장 어려운 부분을 해결 – 당신을 위해 관찰). 바라건대, 그것은 당신이 플로이드 Warshall 알고리즘에