关注
关于移动棋子的那道题,要求放置第i个棋子时有一个格子至少有i个棋子的最少操作数。棋子位置不同,要将i个棋子移动到同一个格子中,那就是i-1个棋子移动到某一个棋子的同一行同一列,那就行列分别移动求最小距离即最小操作数。解法有点暴力,或者解法根本不对。。。。 public class Dynamic {
/**
* @param args
*
*/
public void findOneByOne(int []x, int[]y,int n){
if(x==null || y==null || n==0) return;
for(int i=1;i<=n;i++){
int times=findMin(x,y,i);
System.out.print(times+" ");
}
}
private int findMin(int [] x, int[] y,int n){
int minx=Integer.MAX_VALUE;
int miny=Integer.MAX_VALUE;
for(int i=0;i<n;i++ ){
int total=0;
for(int j=0;j<n;j++){
if(i!=j){
total+=Math.abs(x[j]-x[i]);
}
}
minx=total<minx?total:minx;
}
for(int i=0;i<n;i++ ){
int total=0;
for(int j=0;j<n;j++){
if(i!=j){
total+=Math.abs(y[j]-y[i]);
}
}
miny=total<miny?total:miny;
}
return minx+miny;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]={1,2,4,9};
int b[]={1,1,1,1};
int n=4;
new Dynamic().findOneByOne(a, b, n);
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
03-19 09:58
河海大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得大几开始实习最合适? #
3287次浏览 34人参与
# 金融银行求职进展汇总 #
329284次浏览 1804人参与
# 厦门银行科技岗值不值得投 #
11350次浏览 291人参与
# 大厂实习和小厂实习最大的区别是什么? #
10920次浏览 79人参与
# 你都用vibe coding做过什么? #
1602次浏览 56人参与
# 如果人生可以debug你会改哪一行? #
2051次浏览 52人参与
# 招商银行数字金融训练营 #
44145次浏览 666人参与
# AI Coding实战技巧 #
1309次浏览 39人参与
# Vibe Coding 会干掉初级岗位吗? #
3479次浏览 78人参与
# 你见过哪些招聘隐形歧视? #
2081次浏览 28人参与
# 做完笔试后你收到面试了吗? #
3177次浏览 42人参与
# 面试被问到不会的问题,你怎么应对? #
3034次浏览 26人参与
# 牛友の3月总结 #
7202次浏览 73人参与
# 你现在一天AI几次? #
1064次浏览 39人参与
# 七猫笔试 #
5655次浏览 37人参与
# 选完offer后,你后悔学本专业吗 #
66482次浏览 262人参与
# 实习学到最有价值的工作习惯 #
66784次浏览 541人参与
# 哪些公司真双非友好? #
71231次浏览 305人参与
# 你认为小厂实习有用吗? #
133286次浏览 720人参与
# 快手工作体验 #
321442次浏览 2930人参与
# 找AI工作可以去哪些公司? #
23602次浏览 1028人参与
# 为什么国企只招应届生 #
248625次浏览 1314人参与