首页 / JAVA / java – 在2d矩阵中移动全零
java – 在2d矩阵中移动全零
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 在2d矩阵中移动全零,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含806字,纯文字阅读大概需要2分钟。
内容图文
![java – 在2d矩阵中移动全零](/upload/InfoBanner/zyjiaocheng/782/891a4453beee4044a03ddbd8f95e4c11.jpg)
我有一个像这样的二维数组:
2 0 0 2 0 4
2 0 0 2 0 4
2 0 0 2 0 4
我想把所有的零移到左边,所以为此我做了这个方法:
public static void shiftLeft(int [][] array){
for (int j = 0; j < array.length; j++) {
for (int i = 0; i < array.length - 1; i++) {
if ((array[j][i] != 0) && (array[j][i + 1] == 0)) {
array[j][i + 1] = array[j][i];
array[j][i] = 0;
}
}
}
}
但我得到的输出是这样的:
0 0 2 0 2 4
0 0 2 0 2 4
0 0 2 0 2 4
如何让所有零都向左移动?
解决方法:
在我看来,最简单的方法是使用3个嵌套循环.
变量i遍历行.
变量j1从每行的左侧开始查找第一个非零元素.
变量j2在j1之后找到第一个零元素并交换它们.
下面的代码假定二维矩阵A被声明为A [N] [M],其中N和M分别是行数和列数.
for(int i =0;i<N;i++){
for(int j1=0;j1<M;j1++){
if (A[i][j1]==0)
continue;
for(int j2=j1;j2<M;j2++){
if( A[i][j2]==0){
//swap
int tmp=A[i][j1];
A[i][j1]=A[i][j2];
A[i][j2]=tmp;
}
}
}
}
内容总结
以上是互联网集市为您收集整理的java – 在2d矩阵中移动全零全部内容,希望文章能够帮你解决java – 在2d矩阵中移动全零所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】