「动态规划java」动态规划java背包问题

博主:adminadmin 2023-01-19 02:54:12 329

今天给各位分享动态规划java的知识,其中也会对动态规划java背包问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

关于这个java语言描述的0-1背包问题是否有错误?

有点问题:

public static void knapsack(int[]v,int[]w,int c,int[][]m)

{

int n=v.length-1;

int jMax=Math.min(w[n]-1,c);

for(int j=0;j=jMax;j++)

m[n][j]=0;

for(int j=w[n];j=c;j++)

m[n][j]=v[n];

for(int i=n-1;i1;i--)

{

jMax=Math.min(w[i]-1,c);

for(int j=0;j=jMax;j++)

m[i][j]=m[i+1][j];

for(int j=w[i];j=c;j++)

m[i][j]=Math.max(m[i+1][j],m[i+1][j-w[i]]+v[i]);

}

m[1][c]=m[2][c];

if(c=w[1])

m[1][c]=Math.max(m[1][c],m[2][c-w[1]]+v[1]);

}

public static void traceback(int[][]m,int[]w,int c,int[]x)

{

int n=w.length-1;

for(int i=1;in;i++) {

if(m[i][c]==m[i+1][c])x[i]=0;

else {

x[i]=1;

c-=w[i];

}

x[n]=(m[n][c]0)?1:0;

}

//int n=w.length-1;

for(int i=1;in;i++)

if(m[i][c]==m[i+1][c])x[i]=0;

else {

x[i]=1;

c-=w[i];

}

x[n]=(m[n][c]0)?1:0;

}

java语言中编程求解两个字符串最长相同字符串的长度

public class StringTest4 {

/**

* @param args

*/

public static void main(String[] args) {

/*

* 需求4:两个字符串的最大相同子串。

* "sadfcctvghjkl"

* "zxcctvcv"

*

* 思路:

* 1,以短的字符串为主。

* 到长的字符串中去判断是否存在,如果存在,已找到。

* 2,如果没有找到。将短的字符串的长度递减获取子串继续到长的串中查找。只要找到就结束。

* 3,没有找到,说明没有相同的。

*

*/

String s1 = "sadfcctvghjkl";

String s2 = "zxcctvcv";

String maxSub = getMaxSubString(s2,s1);

System.out.println("maxsub="+maxSub+" length="+maxSub.length());

}

public static String getMaxSubString(String s1, String s2) {

//确定哪个是长的哪个是短的。

String longStr,shortStr;

longStr = s1.length()s2.length()?s1:s2;

shortStr = s1.equals(longStr)?s2:s1;

// System.out.println("long:"+longStr);

// System.out.println("short:"+shortStr);

//对短的字符串操作,从短串中取子串,到长字符串中判断,是否存在。

for(int x=0; xshortStr.length(); x++){

for(int y=0,z=shortStr.length()-x; z=shortStr.length(); y++,z++){

//根据y,z,获取子串。

String temp = shortStr.substring(y,z);

// System.out.println(temp);

if(longStr.contains(temp))

return temp;

}

}

return null;

}

}

java算法背包溢出最小值

java算法背包溢出最小值最小值-1,即最小值+(-1),即1-0000加1-1111,变成0-1111。

最大值+1,即0-1111加0-0001,变成1-0000,即最小值最小值-1,即最小值+(-1),即1-0000加1-1111,变成0-1111,即最大值正数区间和负数区间形成了循环,正数区间最大值+1,就进入了负数区间,负数区间最大值+1,就进入了正数区间。

基本信息

数据结构与算法课程是电子科技大学于2018年02月26日首次在中国大学MOOC开设的慕课课程、国家精品在线开放课程。该课程授课教师为林劼、戴波、刘震、周益民。据2021年3月中国大学MOOC官网显示,该课程已开课7次。

数据结构与算法课程共6个模块,包括绪论、线性表、查找、排序、递归与分治、树与二叉树、图论与贪心算法、动态规划等内容。

数据结构与算法课程是计算机科学与技术的学科基础课程,也是是计算机图形学、计算机网络、编译原理、计算机操作系统等后续课程的基础理论之一,其应用范围也早已扩展到图像处理与模式识别、海量数据挖掘、科学数据处理、复杂网络分析等许多计算机前沿领域。

动态规划java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于动态规划java背包问题、动态规划java的信息别忘了在本站进行查找喔。