浏览 1279 次
锁定老帖子 主题:二维数组 元素的连续求解
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-04-16
public class Title { public static void main(String[] args){ f(); } // 二位数组的应用 //12、二维数组中,哪一行或哪一列的连续存放的0的个数最多,是几个0。注意,是“连续”。 public static void f(){ int[][] a = {{0,1,2,4,0,0,3,0,1,0},{0,0,2,4,5,0,3,0,1,1},{0,1,0,0,0,0,3,0,1,0}}; int[][] count = new int[a.length][1]; // 行 int maxCountH = 0; for(int i=0;i<a.length;i++){ int temp = 1; //默认有一个 0 int j=1; for(;j<a[i].length;j++){ if(a[i][j]==a[i][j-1] && a[i][j-1]==0){ temp++; } } if(temp>maxCountH){ maxCountH = temp; } count[i][0] = temp; } //列 int maxCountL = 0; int[][] liecount = new int[a[0].length][1]; //保存列中所有的最大值 for(int i=0;i<a[0].length;i++){ int temp = 1; //默认有一个 0 for(int j=1;j<a.length;j++){ if(a[j][i]==a[j-1][i] && a[j][i]==0){ temp++; } } if(temp>maxCountL){ maxCountL=temp; //保存最大 } liecount[i][0] = temp; // System.out.println("在列的方向0的个数:"+temp); } System.out.println("行的最大为:"+maxCountH); System.out.println("列的最大为:"+maxCountL); if(maxCountH>maxCountL){ //连续最大的在行中 为:maxCountH for(int i=0;i<count.length;i++){ for(int j=0;j<count[i].length;j++){ if(count[i][j]==maxCountH){ System.out.println("最大的连续数在"+(i+1)+"行"); } } } }else{ for(int i=0;i<liecount.length;i++){ for(int j=0;j<liecount[i].length;j++){ if(liecount[i][j]==maxCountL){ System.out.println("最大的连续数在"+(i+1)+"列"); } } } } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |