当前位置: 首页 > news >正文

leetcode刷题日记——螺旋矩阵

[ 题目描述 ]:在这里插入图片描述
[ 思路 ]:

  • 题目要求按顺时针顺序给出m行n列的矩阵的数组
  • 按照题目所给的顺序挨个插入答案数组中
  • 运行如下
    在这里插入图片描述
int* spiralOrder(int** matrix, int matrixSize, int* matrixColSize, int* returnSize) {
    *returnSize = matrixSize * matrixColSize[0];
    int* ans = (int*)malloc(sizeof(int) * (*returnSize)); 

    int top = 0, bottom = matrixSize - 1;
    int left = 0, right = matrixColSize[0] - 1;
    int index = 0;
    int direction = 0;

    while (top <= bottom && left <= right) {
        if (direction == 0) {
            for (int i = left; i <= right; i++) {
                ans[index++] = matrix[top][i];
            }
            top++;
        } else if (direction == 1) {
            for (int i = top; i <= bottom; i++) {
                ans[index++] = matrix[i][right];
            }
            right--;
        } else if (direction == 2) {
            for (int i = right; i >= left; i--) {
                ans[index++] = matrix[bottom][i];
            }
            bottom--;
        } else if (direction == 3) {
            for (int i = bottom; i >= top; i--) {
                ans[index++] = matrix[i][left];
            }
            left++;
        }
        direction = (direction + 1) % 4;
    }

    return ans;
}

  • 时间复杂度O(mn),空间复杂度O(mn)

[ 官方题解 ]:

  • 一、模拟,思路基本同上
  • 二、按层模拟,可以将矩阵看成若干层,首先输出最外层的元素,其次输出次外层的元素,直到输出最内层的元素
    -

相关文章:

  • 运行一次性任务与定时任务
  • Python 质数筛选:从入门到优化的 5 种方法
  • RPA VS AI Agent
  • 如何解决线程安全问题(不涉及分布式情况)
  • MTCNN 人脸识别
  • 对于GAI虚假信息对舆论观察分析
  • 月之暗面开源:多模态推理模型(激活2.8B) Kimi-VL-A3B-Thinking
  • PCDN收益高低的关键因素
  • Python p_tqdm包介绍
  • 2025年土建施工员考试题库及答案
  • js中较为不错的对象内置方法
  • Cribl 通过Splunk search collector 来收集数据
  • 【时时三省】(C语言基础)选择结构程序综合举例
  • 第十五届蓝桥杯C/C++B组国赛真题讲解(分享去年比赛的一些真实感受)
  • 什么是回表?哪些数据库存在回表?
  • dcsdsds
  • ROS2:命令行学习
  • AUTOSAR图解==>AUTOSAR_SWS_MemoryMapping
  • sql server分析表大小
  • 《Python星球日记》第27天:Seaborn 可视化
  • 苹果cms搭建教程/福州seo推广服务
  • wordpress点击图片/百度seo快速见效方法
  • 做网站都有什么功能/设计模板网站
  • 微信社群营销怎么做/seo流量是什么意思
  • 如何注册公司邮箱/中国seo第一人
  • 南京环力建设有限公司网站/百度论坛