同样代码java和python结果不一样

爱吃西瓜皮的小人物 2018-08-30 09:46:32
#JAVA代码
import java.util.Scanner;

public class Dp {

private int n;
private int[] powerNum;
private int peopleNum;
private int jl;

public Dp(int n,int[] powerNum,int peopleNum,int jl){
this.n=n;
this.powerNum=powerNum;
this.peopleNum=peopleNum;
this.jl=jl;
}
public int opt(){
return dp_opt();
}

public int dp_opt(){

int[][] fm=new int[peopleNum][n];
int[][] fn=new int[peopleNum][n];
for (int i = 0; i < n; i++) {
fm[0][i]=powerNum[i];
fn[0][i]=powerNum[i];
}
int res=0;
for (int i = 0; i < n; i++) {
for (int k = 1; k <peopleNum ; k++) {
for (int j = i-1; j >Math.max(0,i-jl)-1 ; j--) {

fm[k][i]=Math.max(fm[k][i],Math.max(fm[k-1][j]*powerNum[i],fn[k-1][j]*powerNum[i]));
fn[k][i]=Math.min(fn[k][i],Math.min(fm[k-1][j]*powerNum[i],fn[k-1][j]*powerNum[i]));
}
}
res=Math.max(res,fm[peopleNum-1][i]);
}
for (int i = 0; i <fm.length ; i++) {
for (int j = 0; j <fm[0].length ; j++) {
System.out.print(fm[i][j]+" ");
}
System.out.println();
}
return res;
}
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int[] powerNum=new int[n];
for (int i = 0; i <n ; i++) {
powerNum[i]=scanner.nextInt();
}
int peopleNum=scanner.nextInt();
int jl=scanner.nextInt();
System.out.println(new Dp(n,powerNum,peopleNum,jl).opt());
}

}
#python代码
n = int(input())
arr = list(map(int, input().split()))
K, D = map(int, input().split())

fm = [[0] * n for _ in range(K)]
fn = [[0] * n for _ in range(K)]
res = 0

for i in range(n):
fm[0][i] = arr[i]
fn[0][i] = arr[i]

for i in range(n):
for k in range(1,K):
for j in range(i-1, max(0, i-D)-1, - 1):
fm[k][i] = max(fm[k][i],max(fm[k-1][j] * arr[i], fn[k-1][j] * arr[i]))
fn[k][i] = min(fn[k][i],min(fm[k-1][j] * arr[i], fn[k-1][j] * arr[i]))
res = max(res, fm[K-1][i])

print(res)

测试用例
47
-41 -5 -10 -31 -44 -16 -3 -33 -34 -35 -44 -44 -25 -48 -16 -32 -37 -8 -33 -30 -6 -18 -26 -37 -40 -30 -50 -32 -5 -41 -32 -12 -33 -22 -14 -34 -1 -41 -45 -8 -39 -27 -23 -45 -10 -50 -34
6 3
为什么同样代码,结果不一样,有大神知道的么
...全文
306 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
verejava 2018-09-01
  • 打赏
  • 举报
回复
Java 数组 之 二维数组 扫雷实例

http://www.verejava.com/?id=17159392878528

249

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧