本文主要是介绍LeetCode 54.螺旋矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.题目要求如图所示:
各位看官们,大家好呀,今天小编用的方法比较麻烦,就是按顺时针遍历,但也挺好理解的,因为就是迭代法循环,所以就不给大家讲步骤了,直接就发代码了:
/*** Note: The returned array must be malloced, assume caller calls free().*/
int* spiralOrder(int** matrix, int matrixSize, int* matrixColSize, int* returnSize) {int col = *matrixColSize;int total = col * matrixSize;int* number = (int*)malloc(sizeof(int) * total);int i = 0;int j = 0;int f = 0;while(f < total){int i_t = i;int j_t = j;while(j_t < col - j){if(f >= total)break;number[f] = matrix[i_t][j_t];f++;j_t++;}if(f >= total){break;}j_t--;i_t++;while(i_t < matrixSize - i){if(f >= total)break;number[f] = matrix[i_t][j_t];f++;i_t++;}if(f >= total){break;}i_t--;j_t--;while(j_t >= j){if(f >= total)break;number[f] = matrix[i_t][j_t];f++;j_t--;}if(f >= total){break;}j_t++;i_t--;while(i_t > i){if(f >= total)break;number[f] = matrix[i_t][j_t];f++;i_t--;}if(f >= total){break;}i++;j++;}*returnSize = total;return number;
}
大家如果觉得好的话,就请给个免费的赞吧,谢谢了^ _ ^
这篇关于LeetCode 54.螺旋矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!