Skip to content

Commit b95f0ce

Browse files
committed
commit
1 parent aaa4700 commit b95f0ce

File tree

70 files changed

+954
-5
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+954
-5
lines changed

.metadata/.log

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,12 @@ java.lang.IllegalArgumentException: Argument cannot be null
102102
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
103103
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
104104
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
105+
!SESSION 2017-09-28 08:23:23.347 -----------------------------------------------
106+
eclipse.buildId=debbuild
107+
java.version=1.7.0_131
108+
java.vendor=Oracle Corporation
109+
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=zh_CN
110+
Command-line arguments: -os linux -ws gtk -arch x86_64
111+
112+
!ENTRY org.eclipse.core.resources 2 10035 2017-09-28 08:23:30.011
113+
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package dynamicProgramming;
2+
3+
public class DynamicProgramming {
4+
5+
public int memoizedCutRod(int[] p,int n){
6+
int[] r=new int[n];
7+
for (int i = 0; i < r.length; i++) {
8+
r[i]=Integer.MIN_VALUE;
9+
}
10+
return memoizedCutRodAux(p,n,r);
11+
}
12+
private int memoizedCutRodAux(int[] p, int n, int[] r) {
13+
// TODO Auto-generated method stub
14+
int q;
15+
if(r[n-1]>=0){
16+
return r[n-1];
17+
}
18+
if(n==0){
19+
q=0;
20+
}else{
21+
q=Integer.MIN_VALUE;
22+
for (int i = 1; i <n; i++) {
23+
if(p[i]+memoizedCutRodAux(p, n-i, r)>q){
24+
q=p[i]+memoizedCutRodAux(p, n-i, r);
25+
}else{
26+
q=q;
27+
}
28+
}
29+
}
30+
r[n-1]=q
31+
return q;
32+
}
33+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dynamicProgramming;
2+
3+
public class TestDynamicProgramming {
4+
public static void main(String[] args) {
5+
int[] p={0,1,5,8,9,10,17,17,20,24,30};
6+
int n=8; //输入的n,实际为n-1;
7+
DynamicProgramming dp=new DynamicProgramming();
8+
int maxProce=dp.memoizedCutRod(p, n+1);
9+
System.out.println(maxProce);
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dynamicProgramming;
2+
3+
public class TestDynamicProgramming {
4+
public static void main(String[] args) {
5+
int[] p={0,1,5,8,9,10,17,17,20,24,30};
6+
int n=8; //输入的n,实际为n-1;
7+
DynamicProgramming dp=new DynamicProgramming();
8+
int maxProce=dp.memoizedCutRod(p, n);
9+
System.out.println(maxProce);
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dynamicProgramming;
2+
3+
public class TestDynamicProgramming {
4+
public static void main(String[] args) {
5+
int[] p={0,1,5,8,9,10,17,17,20,24,30};
6+
int n=7; //输入的n,实际为n-1;
7+
DynamicProgramming dp=new DynamicProgramming();
8+
int maxProce=dp.memoizedCutRod(p, n+1);
9+
System.out.println(maxProce);
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dynamicProgramming;
2+
3+
public class TestDynamicProgramming {
4+
public static void main(String[] args) {
5+
int[] p={1,5,8,9,10,17,17,20,24,30};
6+
int n=10;
7+
DynamicProgramming dp=new DynamicProgramming();
8+
int maxProce=dp.memoizedCutRod(p, n);
9+
System.out.println(maxProce);
10+
}
11+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package dynamicProgramming;
2+
3+
public class DynamicProgramming {
4+
5+
public int memoizedCutRod(int[] p,int n){
6+
int[] r=new int[n];
7+
for (int i = 0; i < r.length; i++) {
8+
r[i]=Integer.MIN_VALUE;
9+
}
10+
return memoizedCutRodAux(p,n,r);
11+
}
12+
private int memoizedCutRodAux(int[] p, int n, int[] r) {
13+
// TODO Auto-generated method stub
14+
int q;
15+
if(r[n-1]>=0){
16+
return r[n-1];
17+
}
18+
if(n==0){
19+
q=0;
20+
}else{
21+
q=Integer.MIN_VALUE;
22+
for (int i = 1; i <n; i++) {
23+
if(p[i]+memoizedCutRodAux(p, n-1-i, r)>q){
24+
q=p[i]+memoizedCutRodAux(p, n-i, r);
25+
}else{
26+
q=q;
27+
}
28+
}
29+
}
30+
r[n-1]=q;
31+
return q;
32+
}
33+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dynamicProgramming;
2+
3+
public class TestDynamicProgramming {
4+
public static void main(String[] args) {
5+
int[] p={1,5,8,9,10,17,17,20,24,30};
6+
int n=10;
7+
DynamicProgramming dp=new DynamicProgramming();
8+
int maxProce=dp.memoizedCutRod(p, n);
9+
System.out.println(maxProce);
10+
}
11+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package dynamicProgramming;
2+
3+
public class DynamicProgramming {
4+
5+
public int memoizedCutRod(int[] p,int n){
6+
int[] r=new int[n];
7+
for (int i = 0; i < r.length; i++) {
8+
r[i]=Integer.MIN_VALUE;
9+
}
10+
return memoizedCutRodAux(p,n,r);
11+
}
12+
private int memoizedCutRodAux(int[] p, int n, int[] r) {
13+
// TODO Auto-generated method stub
14+
int q;
15+
if(r[n-1]>=0){
16+
return r[n-1];
17+
}
18+
if(n==0){
19+
q=0;
20+
}else{
21+
q=Integer.MIN_VALUE;
22+
for (int i = 1; i <n; i++) {
23+
if(p[i]+memoizedCutRodAux(p, n-i, r)>q){
24+
q=p[i]+memoizedCutRodAux(p, n-i, r);
25+
}else{
26+
q=q;
27+
}
28+
}
29+
}
30+
r[n-1]=q;
31+
return q;
32+
}
33+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package dynamicProgramming;
2+
3+
public class DynamicProgramming {
4+
5+
public int memoizedCutRod(int[] p,int n){
6+
int[] r=new int[n+1];
7+
for (int i = 0; i < r.length; i++) {
8+
r[i]=Integer.MIN_VALUE;
9+
}
10+
return memoizedCutRodAux(p,n,r);
11+
}
12+
private int memoizedCutRodAux(int[] p, int n, int[] r) {
13+
// TODO Auto-generated method stub
14+
int q;
15+
if(r[n]>=0){
16+
return r[n-1];
17+
}
18+
if(n==0){
19+
q=0;
20+
}else{
21+
q=Integer.MIN_VALUE;
22+
for (int i = 1; i <=n; i++) {
23+
if(p[i]+memoizedCutRodAux(p, n-i, r)>q){
24+
q=p[i]+memoizedCutRodAux(p, n-i, r);
25+
}else{
26+
q=q;
27+
}
28+
}
29+
}
30+
r[n]=q;
31+
return q;
32+
}
33+
}

0 commit comments

Comments
 (0)