阿里笔试
沿着矩阵列方向找出一条路径,使路径上元素间差绝对值和最小,打印该最小和
测试用例
5
5 9 5 4 4
4 7 4 10 3
2 10 9 2 3

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int[][] a=new int[3][n];
for(int i=0;i<3;i++) {
for(int j=0;ja[i][j]=scanner.nextInt();
}
}

int[][] dp=new int[3][n];
for(int j=1;j//逐列操作
for(int i=0;i<3;i++) {
int val=a[i][j];
//dp矩阵每个位置都需要计算三个值
ArrayList list=new ArrayList();
list.add(Math.abs(a[0][j-1]-val)+dp[0][j-1]);
list.add(Math.abs(a[1][j-1]-val)+dp[1][j-1]);
list.add(Math.abs(a[2][j-1]-val)+dp[2][j-1]);
list.sort(null);
System.out.println(list);
dp[i][j]=list.get(0);
}
}
ArrayList lastlinedp=new ArrayList();
for(int i=0;i<3;i++) {
lastlinedp.add(dp[i][n-1]);
}
lastlinedp.sort(null);
System.out.println(lastlinedp.get(0));
}
}
全部评论
妈妈咪呀,没看懂题🤣
1 回复
分享
发布于 2020-03-27 14:03

相关推荐

看网上风评也太差了
投递万得信息等公司8个岗位 >
点赞 评论 收藏
转发
3 收藏 评论
分享
牛客网
牛客企业服务