From b67efdf79e40e606a10fd11eea0238a5975e71da Mon Sep 17 00:00:00 2001 From: Deepak Date: Tue, 3 Oct 2017 10:16:32 +0530 Subject: [PATCH] rodcuting dp approach A Dynamic Programming solution for Rod cutting problem --- Dynamic Programming/rod_cutting.java | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Dynamic Programming/rod_cutting.java diff --git a/Dynamic Programming/rod_cutting.java b/Dynamic Programming/rod_cutting.java new file mode 100644 index 00000000..3424afac --- /dev/null +++ b/Dynamic Programming/rod_cutting.java @@ -0,0 +1,33 @@ +/* A Dynamic Programming solution for Rod cutting problem + Returns the best obtainable price for a rod of + length n and price[] as prices of different pieces */ + +public class RodCutting +{ + + private static int cutRod(int price[],int n) + { + int val[] = new int[n+1]; + val[0] = 0; + + for (int i = 1; i<=n; i++) + { + int max_val = Integer.MIN_VALUE; + for (int j = 0; j < i; j++) + max_val = Math.max(max_val,price[j] + val[i-j-1]); + + val[i] = max_val; + } + + return val[n]; + } + + //main function to test + public static void main(String args[]) + { + int arr[] = new int[] {2, 5, 13, 19, 20}; + int size = arr.length; + System.out.println("Maximum Obtainable Value is " + + cutRod(arr, size)); + } +}