1、顺时针打印矩阵
public class Exerse3{
public static void printMatrixIncircle(int[][] nArr,int rows,int columns,int nStart){
// nEndX是最右一列列号
int nEndX = columns - 1 - nStart;
// nEndY是最下面一行行号
int nEndY = rows - 1 - nStart;
// 从左至右打印一行
for (int i = nStart; i <= nEndX; i++) {
System.out.print(nArr[nStart][i] + " ");
}
// 从上到下打印一列
if (nEndY > nStart) {
for (int j = nStart + 1; j <= nEndY; j++){
System.out.print(nArr[j][nEndX] + " ");
}
}
// 从右至左打印一行
if (nEndX > nStart && nEndY > nStart) {
for (int k = nEndX - 1; k >= nStart; k--) {
System.out.print(nArr[nEndY][k] + " ");
}
}
// 从下到上打印一列
if (nEndY - 1 > nStart && nEndX > nStart) {
for (int p = nEndY - 1; p >= nStart + 1; p--) {
System.out.print(nArr[p][nStart] + " ");
}
}
}
public static void print(int[][] nArr, int rows, int columns) {
if (nArr == null || rows <= 0 || columns <= 0) {
return;
}
int nStart = 0;
while (rows > (nStart * 2) && columns > (nStart * 2)) {
printMatrixIncircle(nArr, rows, columns, nStart);
nStart++;
}
}
public static void main(String[] args) {
int[][] nMatrix1 = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 },
{ 13, 14, 15, 16 } };
print(nMatrix1, 4, 4);
}
}
2、定义一个二维数组,输入一个数字num,在该数组中查找是否包含这个数字num,数组要求从上到下递增有序,从左向右递增有序)
法一:
public class Exerse3{
public static boolean findNum(int[][] arr,int a){
for(int i=0;i<arr.length;i++){
for(int j=arr[i].length-1;j>=0;j--){
if(a<arr[i][j]){
if(j==0){
break;
}
j--;
}
if(a==arr[i][j]){
return true;
}
if(a>arr[i][j]){
i++;
}
if(a==arr[i][j]){
return true;
}
}
}
return false;
}
public static void main(String[] args){
int[][] arr={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
boolean bool=findNum(arr,5);
System.out.println(bool);
}
}
法二:
public class Exerse3{
public static boolean paiXu(int[][] arr,int num){
int len=arr[0].length;
if(num>arr[0][len-1]){
for(int i=0;i<arr.length;i++){
if(num<arr[i][len-1]){
for(int j=len-1;j>0;j--){
if(arr[i][j]==num){
return true;
}
}
}
else{
for(int j=len-1;j>=0;j--){
if(arr[i][j]==num){
return true;
}
}
}
}
}
return false;
}
public static void main(String[] args){
int[][] arr={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
boolean bool=paiXu(arr,12);
System.out.print(bool);
}
}