Skip to content

Commit 5cc2282

Browse files
committed
improvements
1 parent d78dc84 commit 5cc2282

8 files changed

+207
-216
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,42 @@
1-
// A Dynamic programming solution for Rod Cutting problem
2-
1+
// A Dynamic programming solution for Rod Cutting problem
32
#include <iostream>
43
#include <limits.h>
5-
#include <stdio.h>
4+
65
using namespace std;
76

8-
//a fxn for calculating max of two nos.
9-
int max(int a,int b)
10-
{
7+
// A function for calculating max of two nos.
8+
int max(int a, int b)
9+
{
1110
return (a>b)?a:b;
1211
}
13-
// returns the max obtainable cost
14-
int CutRod(int cost[],int n)
15-
{ int val[n+1],i,j;
16-
val[0]=0;
17-
18-
for (i=1;i<=n;i++)
19-
{ int max_value=INT_MIN;
20-
for(j=0;j<i;j++)
21-
max_value=max(max_value,cost[j]+val[i-j-1]);
22-
val[i]=max_value;
23-
}
24-
return val[n];
25-
12+
13+
// Returns the max obtainable cost
14+
int CutRod(int cost[], int n)
15+
{
16+
int val[n+1], i, j;
17+
val[0] = 0;
18+
19+
for(i = 1; i <= n; i++)
20+
{
21+
int max_value = INT_MIN;
22+
for(j = 0; j < i; j++)
23+
max_value = max(max_value, cost[j]+val[i-j-1]);
24+
val[i] = max_value;
25+
}
26+
return val[n];
2627
}
2728

28-
// driver fxn
29+
// Driver function
2930
int main() {
30-
int arr[]={3,5,8,9,10,17,17,20};
31-
int size=sizeof(arr)/sizeof(arr[0]);
32-
cout<<"Maximum value is "<<CutRod(arr,size)<<endl;
33-
getchar();
31+
int arr[] = {3, 5, 8, 9, 10, 17, 17, 20};
32+
int size = sizeof(arr) / sizeof(arr[0]);
33+
cout << "Maximum value is " << CutRod(arr, size) << endl;
3434
return 0;
3535
}
3636

3737

38+
/* OUTPUT
39+
40+
Maximum value is 24
3841
39-
/*OUTPUT
40-
Maximum value is 24 */
42+
*/

Diff for: Dynamic_Programming_Rod_Cutting/Dynamic_Programming_Rod_Cutting.cs

+13-12
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,35 @@ namespace Dynamic_Programming_Rod_Cutting
88
{
99
class Program
1010
{
11-
12-
private static int max(int a , int b )
11+
private static int max(int a, int b )
1312
{
14-
1513
return (a > b) ? a : b;
1614
}
17-
private static int money( int []arr, int size)
15+
private static int money(int[] arr, int size)
1816
{
19-
if( size <= 0 )
20-
return 0 ;
17+
if(size <= 0)
18+
return 0;
2119
else
2220
{
2321
int max_val = Int32.MinValue;
2422
for (int i = 0; i < size; i++)
2523
max_val = max(max_val, arr[i] + money(arr, size - i - 1));
2624
return max_val;
2725
}
28-
29-
3026
}
3127
static void Main(string[] args)
3228
{
33-
int [] arr = {1, 5, 8, 9, 10, 17, 17, 20};
29+
int[] arr = {3, 5, 8, 9, 10, 17, 17, 20};
3430
int size = arr.Length;
35-
Console.Write("MAximum Cost : " + money(arr, size));
31+
Console.Write("Maximum Cost : " + money(arr, size));
3632
Console.Read();
37-
//output 22
38-
3933
}
4034
}
4135
}
36+
37+
38+
/* OUTPUT
39+
40+
Maximum value is 24
41+
42+
*/
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,48 @@
1-
// A Dynamic programming solution for Rod Cutting problem
1+
// A Dynamic programming solution for Rod Cutting problem
22

33
import java.util.*;
44
import java.lang.*;
55
import java.io.*;
66

77
class RodCutting
8-
{ //a fxn for calculating max of two nos.
8+
{
9+
// A function for calculating max of two nos.
910
static int max(int a,int b)
10-
{
11-
return(a > b) ? a : b ;
12-
13-
}
14-
15-
// returns the max obtainable cost
16-
static int CutRod(int cost[],int n)
17-
{ int []val=new int[n+1];
18-
int i,j;
19-
val[0]=0;
20-
21-
for(i=1;i<=n;i++)
22-
{ int max_value=Integer.MIN_VALUE;
23-
for(j=0;j<i;j++)
24-
max_value=max(max_value,cost[j]+val[i-j-1]);
25-
val[i]=max_value;
26-
}
27-
28-
return val[n];
29-
}
30-
31-
// driver fxn
32-
33-
public static void main(String args[])
34-
{ int []arr=new int [] {3,5,8,9,10,17,17,20};
35-
int size=arr.length;
36-
System.out.println("Maximum value is " + CutRod(arr,size));
37-
}
38-
}
39-
40-
41-
/*OUTPUT
42-
Maximum value is 24 */
43-
44-
45-
46-
47-
11+
{
12+
return (a > b) ? a : b;
13+
}
14+
15+
// Returns the max obtainable cost
16+
static int CutRod(int cost[],int n)
17+
{
18+
int []val = new int[n+1];
19+
int i,j;
20+
val[0] = 0;
21+
22+
for(i = 1; i <= n; i++)
23+
{
24+
int max_value = Integer.MIN_VALUE;
25+
for(j = 0; j < i; j++)
26+
max_value = max(max_value, cost[j] + val[i-j-1]);
27+
val[i] = max_value;
28+
}
29+
30+
return val[n];
31+
}
32+
33+
// Driver function
34+
35+
public static void main(String args[])
36+
{
37+
int []arr = new int [] {3, 5, 8, 9, 10, 17, 17, 20};
38+
int size = arr.length;
39+
System.out.println("Maximum value is " + CutRod(arr, size));
40+
}
41+
}
42+
43+
44+
/* OUTPUT
45+
46+
Maximum value is 24
47+
48+
*/
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
//find max function
2-
function max( a , b )
1+
// Find max function
2+
function max(a, b)
33
{
4-
return (a>b)?a:b;
4+
return (a > b) ? a : b;
55
}
6-
//find max money function
7-
function money (arr , size ) {
86

9-
10-
11-
if (size<=0) return 0;
7+
// Find max money function
8+
function money(arr , size )
9+
{
10+
if(size <= 0)
11+
return 0;
1212
else
1313
{
14-
var max_val=Number.MIN_VALUE;
15-
for (var i = 0; i < size; i++)
16-
max_val = max(max_val, arr[i] + money(arr, size - i - 1));
17-
return max_val;
18-
14+
var max_val = Number.MIN_VALUE;
15+
for(var i = 0; i < size; i++)
16+
max_val = max(max_val, arr[i] + money(arr, size - i - 1));
17+
return max_val;
1918
}
2019
}
21-
//given money
22-
var arr = [1, 5, 8, 9, 10, 17, 17, 20];
20+
21+
// Given money
22+
var arr = [1, 5, 8, 9, 10, 17, 17, 20];
2323
var size = arr.length;
2424

25-
console.log("Maximum Cost : " + money(arr, size));
26-
//Output Maximum Cost :22
25+
console.log("Maximum Cost : " + money(arr, size));
26+
27+
28+
// Output
29+
// Maximum Cost :22
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,35 @@
11
<?php
2-
//Maximum Function
3-
function maximum($a , $b )
2+
// Maximum Function
3+
function maximum($a, $b)
44
{
5-
if($a>$b)
6-
return $a ;
7-
else
8-
return $b ;
5+
if($a > $b)
6+
return $a;
7+
else
8+
return $b;
99
}
10-
//Max Money
11-
function money( $cost , $n)
10+
11+
// Max Money
12+
function money($cost, $n)
1213
{
14+
$val = new SplFixedArray($n + 1);
15+
$val[0] = 0;
1316

14-
$val= new SplFixedArray($n+1);
15-
16-
$val[0]=0;
17-
18-
for ($i=1;$i<=$n;$i++)
19-
{ $max_value=0;
20-
for($j=0;$j<$i;$j++)
21-
$max_value=maximum($max_value,$cost[$j]+$val[$i-$j-1]);
22-
$val[$i]=$max_value;
17+
for($i = 1; $i <= $n; $i++)
18+
{
19+
$max_value = 0;
20+
for($j = 0; $j < $i; $j++)
21+
$max_value = maximum($max_value, $cost[$j] + $val[$i-$j-1]);
22+
$val[$i] = $max_value;
2323
}
2424
return $val[$n];
2525
}
2626

27-
$cost = array(3, 4, 5, 4, 7);
27+
$cost = array(3, 5, 8, 9, 10, 17, 17, 20);
2828
$size = sizeof($cost);
29-
echo money($cost , $size);
30-
//output 15
29+
echo money($cost, $size);
30+
31+
32+
// Output
33+
// 24
3134

3235
?>
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11

22
INT_MIN = -32767
3-
#function for money calculation
4-
def money (price, n):
3+
4+
# Function for money calculation
5+
def money(price, n):
56
val = [0 for x in range(n+1)]
67
val[0] = 0
7-
8+
89
for i in range(1, n+1):
910
max_val = INT_MIN
1011
for j in range(i):
1112
max_val = max(max_val, price[j] + val[i-j-1])
1213
val[i] = max_val
13-
14+
1415
return val[n]
15-
# testing the function
16-
arr = [1, 5, 8, 9, 10, 17, 17, 20]
16+
17+
# Testing the function
18+
arr = [3, 5, 8, 9, 10, 17, 17, 20]
1719
size = len(arr)
18-
print("Maximum Money :" + str(money(arr, size)))
19-
#output Maximum Money :22
20+
21+
print("Maximum Money : " + str(money(arr, size)))
22+
23+
24+
# Output
25+
# Maximum Money : 24

0 commit comments

Comments
 (0)