当前位置: > 职场指南 > 面试试题 > 本文内容

程序员面试题精选100题(51)-顺时针打印矩阵[算法] (2)

发布时间:2019-09-22整理:admin阅读:

由于endXendY可以根据startXstartY以及columnsrows来求得,因此此时我们只需要引入startXstartY两个变量。我们可以想象有一个循环,在每一次循环里我们从(startX, startY)出发按照顺时针打印数字。

接着我们分析这个循环结束的条件。对一个5×5的矩阵而言,最后一圈只有一个数字,对应的坐标为(2, 2)。我们发现5 > 2 * 2。对一个6×6的矩阵而言,最后一圈有四个数字,对应的坐标仍然为(2, 2)。我们发现6 > 2 * 2依然成立。于是我们可以得出,让循环继续的条件是columns > startX * 2 && rows > startY * 2。有了这些分析,我们就可以写出如下的代码:

void PrintMatrixClockwisely(int** numbers, int columns, int rows)

{

        if(numbers == NULL || columns <= 0 || rows <= 0)

                return;

 

        int startX = 0;

        int startY = 0;

 

        while(columns > startX * 2 && rows > startY * 2)

        {

                PrintMatrixInCircle(numbers, columns, rows, startX, startY);

 

欢迎分享转载→ 程序员面试题精选100题(51)-顺时针打印矩阵[算法] (2)

相关文章

用户评论

精品推荐

图文资讯

网站地图 - 辞职报告- 职场指南 - 实习总结 - 实习周记 - 实习鉴定- - 个人总结 - 主持词 - 工作计划