题目
给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。
幸运数是指矩阵中满足同时下列两个条件的元素:
在同一行的所有元素中最小 在同一列的所有元素中最大
break与continue的对比
break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。 continue 的用法十分简单,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,然后进行下一次是否执行循环的判定。
代码
int* luckyNumbers (int** matrix, int matrixSize, int* matrixColSize, int* returnSize){
int *adc=(int*)malloc(sizeof(int) * matrixSize * matrixColSize[0]);
int shu = 0;
for(int i = 0 ; i < matrixSize ; i++){
for(int y = 0 ; y < matrixColSize[0] ; y++){
bool max1 = true , min1 = true;
for(int k = 0 ; k < matrixColSize[0] ; k++){ //列中最小
if(matrix[i][k] < matrix[i][y]){
min1 = false;
break;
}
}
if(!min1){ //列不对,就返回从新找值
continue;
}
for(int n = 0 ; n < matrixSize ; n++){ //行中最大
if(matrix[n][y] > matrix[i][y]){
max1 = false;
break;
}
}
if(max1){
adc[shu++] =matrix[i][y];
}
}
}
*returnSize = shu;
return adc;
}
|