劍指offer 順時針列印矩陣

2021-09-26 08:21:05 字數 898 閱讀 1214

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列**現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。

#include#include#define true 1

#define false 0

bool ginvalid=false;

//判斷是否非法輸入

bool checkinvalid(int* numbers,int length)

return ginvalid;

}//判斷是否存在出現次數超過陣列長度的一半的數

bool checkmorethanhalf(int* numbers,int length,int number)

bool gmorethanhalf=true;

if(times*2<=length)

return gmorethanhalf;

}//查詢出現次數超過陣列長度的一半的數

void morethanhalf(int* numbers,int length)

//times出現次數

//result是數

int result=numbers[0];

int times=1;

int i=1;

for(i;ielse if(numbers[i]==result)

else

}//判斷出現次數是否超過一半

if(!checkmorethanhalf(numbers,length,result))

printf("%d\n",result);

}int main()

; morethanhalf(a,9);

return 0;

}

劍指offer 順時針列印矩陣

題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次列印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。分析 第一次看到這個題目的時候,覺得...

劍指offer 順時針列印矩陣

題目描述 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字,例如,如果輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次列印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路 遞迴列印,處理好邊界就ok...

劍指offer 順時針列印矩陣

題目描述 給定乙個矩陣按照順時針順序從外到內的列印這個矩陣 解題思路 設定乙個全域性的方向向量dir其中的順序是向右,向下,向左,向上 每次給行加上乙個方向向量,當出現越界或者已經列印過的時候重新選擇方向 vectorprintmatrix vector matrix int d 0 int row...