关注
关于移动棋子的那道题,要求放置第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);
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
24983次浏览 429人参与
# 面试经验谈 #
16114次浏览 255人参与
# 京东TGT #
31806次浏览 153人参与
# 假如我穿越到了妈妈的18岁 #
535次浏览 24人参与
# 职场新人生存指南 #
335638次浏览 7199人参与
# 面试吐槽bot #
3216次浏览 42人参与
# 对妈妈没说出口的话 #
9078次浏览 250人参与
# 妈妈治愈了你哪些脆皮时刻 #
3676次浏览 89人参与
# 异地恋该为对方跳槽吗 #
25065次浏览 123人参与
# 硬件人更看重稳定还是高薪 #
40174次浏览 207人参与
# 硬件人秋招的第一个offer #
66227次浏览 1082人参与
# 机械求职避坑tips #
41673次浏览 355人参与
# 工作一周年分享 #
14404次浏览 100人参与
# 请用你的专业向妈妈表白 #
2379次浏览 39人参与
# 入职第五天,你被拉进了几个工作群 #
13455次浏览 76人参与
# 机械人,你的第一份感谢信是谁给的 #
22567次浏览 295人参与
# 视觉/交互/设计招聘信息汇总 #
10051次浏览 595人参与
# 租房找室友 #
28823次浏览 148人参与
# 不考虑转正,实习多久合适 #
24837次浏览 119人参与
# 签约有哪些注意事项 #
33759次浏览 241人参与
# 上班苦还是上学苦呢? #
214119次浏览 1288人参与