to: OnlyFor_love(你来我家,我睡沙发。我去你家,我还睡沙 你的第二个循环是不是有点问题, 这样做好像得不到你想要的结果
我写了一个,只招行中的。 public class find3re{ public static void main(String args[]){ int[][] a=new int[5][7]; for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ a[i][j]=i;//初始化 } } for(int i=0;i<a.length;i++){//找行中的数据 int num=a[i][0]; int count=1; for(int j=1;j<a[i].length;j++){ if(a[i][j]==num){ count++; if(count==3) System.out.println("row:"+(i+1)+" col:"+(j-1));//把位置输出 } else{ num=a[i][j]; count=1; } } }
} }
初学java,不知道这样能不能行得通import java.util.*;public class ArrayPra { public void ArryPra() { } public void getArray(int a[][],int m,int n) {
for(int i = 0;i<m;i++) {for(int j = 0;j<n-2;j++) { int b1 = a[i][j]; int b2 = a[i][j+1]; if(b1!=b2) {continue;} else { int b3 = a[i][j+2]; if(b1==b2&&b1==b3) { System.out.println(a[i][j]+"第"+(i*n+j+1)+","+(i*n+j+2)+","+(i*n+j+3)+"位相同;"); } } } System.out.println(" ");}
for(int j = 0;j<n;j++) {for(int i = 0;i<m-2;i++) { int b1 = a[i][j]; int b2 = a[i+1][j]; if(b1!=b2) {continue;} else { int b3 = a[i+2][j]; if(b1==b2&&b1==b3) { System.out.println(a[i][j]+"第"+(i*n+j+1)+","+((i+1)*n+j+1)+","+((i+2)*n+j+1)+"位相同;"); } } } System.out.println(" ");}
}
public static void main(String[] args) { ArrayPra ap = new ArrayPra(); int[][] a = new int[3][6]; int row0[]={1,2,2,2,1,3}; int row1[]={3,2,1,1,1,2}; int row2[]={1,2,3,2,3,2}; a[0]=row0; a[1]=row1; a[2]=row2; ap.getArray(a,3,6); } }
public class Matrix { static int ROWNUM = 5; // m static int COLNUM = 5; // n
int [][] data = new int[][] {{1,2,1,3,3}, {2,3,4,4,6}, {4,3,3,3,2}, {2,2,2,3,4}, {9,2,3,4,5}};
public void printGood(){
int M = data.length; int N = data[0].length;
int [] rowBegins = new int[N]; // == zero? int [] rowEnds = new int[N];
for (int i = 0; i < N; i ++){ rowBegins[i] = -1; } for (int j = 0; j < N; j ++){ rowEnds[j] = -1; }
for (int i = 0; i < M; i ++){
int colBegin = -1; int colEnd = -1; for (int j = 0; j < N - 1; j ++){
// process every row. if (data[i][j] == data[i][j + 1]){ if (colBegin == -1){ colBegin = j; colEnd = j + 1; } else { colEnd = j + 1; } } else{ if (colBegin != -1){ System.out.println("(" + i + ", " + colBegin + ") - (" + i + ", " + colEnd + ")"); colBegin = colEnd = -1; }
}
// process every col. if (i != M -1){ if (data[i][j] == data[i + 1][j]){ if (rowBegins[j] == -1) { rowBegins[j] = i;
ArrayList al = new ArrayList();
那么你可以这样:
for(int i = 0;i<str.length;i++)
{
for(int j = 0;j<str[i].length;j++)
{
al.add(str[i][j]);
}
}接着再来一个
for(int j = 0;j<str.length;j++)
{
for(int i = 0;j<str[j].length;i++)
{
al.add(str[i][j]);
}
}
int[][] iArc = new int[m][n];
int iRow = iArc.length;
int iCol = iArc[0].length;
for(int i = 0; i < iRow; i++) {
for(int j = 0; i < iCol; j++) {
....
}
}
int findPosition(int iNum,int iRowPos, int iColPos,int iFlag) {//iFlag = 0 行;iFlag = 1;列
int iConter = 0;
if(iFlag == 0) {//往右找
for(int i = iColPos; i < iCol; i++) {
if(iNum == iArc[iRowPos][i]) {
//找到一个
。
iConter ++;
}
}
} else if(iFlag == 0) {//往下找
for(int i = iRowPos; i < iCol; i++) {
if(iNum == iArc[i][iColPos]) {
//找到一个
。
iConter ++;
}
} }
return iConter;
}
比如str[i][j]
ArrayList al = new ArrayList();
那么你可以这样:
for(int i = 0;i<str.length;i++)
{
for(int j = 0;j<str[i].length;j++)
{
al.add(str[i][j]);
}
}接着再来一个
for(int j = 0;j<str.length;j++)
{
for(int i = 0;j<str[j].length;i++)
{
al.add(str[i][j]);
}
}
不过每个子循环的时候就判断一次,记录下来结果,然后清空,例如
for(int j = 0;j<str.length;j++)
{
for(int i = 0;j<str[j].length;i++)
{
al.add(str[i][j]);
}
//判断
//记录结果
//清空
}
你的第二个循环是不是有点问题,
这样做好像得不到你想要的结果
public class find3re{
public static void main(String args[]){
int[][] a=new int[5][7];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
a[i][j]=i;//初始化
}
}
for(int i=0;i<a.length;i++){//找行中的数据
int num=a[i][0];
int count=1;
for(int j=1;j<a[i].length;j++){
if(a[i][j]==num){
count++;
if(count==3)
System.out.println("row:"+(i+1)+" col:"+(j-1));//把位置输出
}
else{
num=a[i][j];
count=1;
}
}
}
}
}
{
public void ArryPra()
{
}
public void getArray(int a[][],int m,int n)
{
for(int i = 0;i<m;i++)
{for(int j = 0;j<n-2;j++)
{
int b1 = a[i][j];
int b2 = a[i][j+1];
if(b1!=b2)
{continue;}
else
{
int b3 = a[i][j+2];
if(b1==b2&&b1==b3)
{
System.out.println(a[i][j]+"第"+(i*n+j+1)+","+(i*n+j+2)+","+(i*n+j+3)+"位相同;");
}
}
}
System.out.println(" ");}
for(int j = 0;j<n;j++)
{for(int i = 0;i<m-2;i++)
{
int b1 = a[i][j];
int b2 = a[i+1][j];
if(b1!=b2)
{continue;}
else
{
int b3 = a[i+2][j];
if(b1==b2&&b1==b3)
{
System.out.println(a[i][j]+"第"+(i*n+j+1)+","+((i+1)*n+j+1)+","+((i+2)*n+j+1)+"位相同;");
}
}
}
System.out.println(" ");}
}
public static void main(String[] args)
{
ArrayPra ap = new ArrayPra();
int[][] a = new int[3][6];
int row0[]={1,2,2,2,1,3};
int row1[]={3,2,1,1,1,2};
int row2[]={1,2,3,2,3,2};
a[0]=row0;
a[1]=row1;
a[2]=row2;
ap.getArray(a,3,6);
}
}
static int COLNUM = 5; // n
int [][] data = new int[][] {{1,2,1,3,3},
{2,3,4,4,6},
{4,3,3,3,2},
{2,2,2,3,4},
{9,2,3,4,5}};
public void printGood(){
int M = data.length;
int N = data[0].length;
int [] rowBegins = new int[N]; // == zero?
int [] rowEnds = new int[N];
for (int i = 0; i < N; i ++){
rowBegins[i] = -1;
}
for (int j = 0; j < N; j ++){
rowEnds[j] = -1;
}
for (int i = 0; i < M; i ++){
int colBegin = -1;
int colEnd = -1;
for (int j = 0; j < N - 1; j ++){
// process every row.
if (data[i][j] == data[i][j + 1]){
if (colBegin == -1){
colBegin = j;
colEnd = j + 1;
}
else
{
colEnd = j + 1;
}
}
else{
if (colBegin != -1){
System.out.println("(" + i + ", " + colBegin + ") - (" + i + ", " + colEnd + ")");
colBegin = colEnd = -1;
}
}
// process every col.
if (i != M -1){
if (data[i][j] == data[i + 1][j]){
if (rowBegins[j] == -1)
{
rowBegins[j] = i;
}
rowEnds[j] = i + 1;
}
else{
if (rowBegins[j] != -1){
System.out.println("(" + rowBegins[j] + ", " + j + ") - (" + rowEnds[j] + ", " + j + ")");
rowBegins[j] = rowEnds[j] = -1;
}
}
}
else{
if (rowBegins[j] != -1){
System.out.println("(" + rowBegins[j] + ", " + j + ") - (" + rowEnds[j] + ", " + j + ")");
rowBegins[j] = rowEnds[j] = -1;
}
}
}
if (colBegin != -1){
System.out.println("(" + i + ", " + colBegin + ") - (" + i + ", " + colEnd + ")");
colBegin = colEnd = -1;
}
}
}
public static void main(String[] args){
Matrix mx = new Matrix();
mx.printGood();
}
}