LeetCode:59. 螺旋矩阵 II(模拟 Java)

news/2025/2/9 1:22:57 标签: leetcode, 矩阵, 算法

目录

59. 螺旋矩阵 II

题目描述:

实现代码与解析:

模拟

原理思路:


59. 螺旋矩阵 II

题目描述:

        给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

示例 1:

输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]

示例 2:

输入:n = 1
输出:[[1]]

提示:

  • 1 <= n <= 20

实现代码与解析:

模拟

class Solution {
    public int[][] generateMatrix(int n) {
        
        int[][] res = new int[n][n];
        int[][] d = {
  
  {0, 1}, {1, 0}, {0, -1}, {-1, 0}};
        int cur = 1;
        int i = 0, j = 0;
        int idx = 0;
        while (cur <= n * n) {
            res[i][j] = cur;
            cur++;
            int l = i + d[idx][0], r = j + d[idx][1];
            if (l < 0 || l >= n || r < 0 || r >= n || res[l][r] != 0) {
                idx = (idx + 1) % 4;
            }
            i = i + d[idx][0];
            j = j + d[idx][1];
        }
        return res;
    }
}

原理思路:

        模拟,如果下一个位置超过矩阵,转换方向即可。注意res[l][r] != 0这个判断即可,因为环绕从外向内,遇到已经填充过的数,那么就开始填充内圈即可。


http://www.niftyadmin.cn/n/5845421.html

相关文章

s1:简单测试-时间规模化

25年1月来自斯坦福、西雅图 UW、AI2 和 Contextual AI 的论文“s1: Simple test-time scaling”。 测试-时间规模化是一种很有前途的语言建模新方法&#xff0c;它使用额外的测试-时间计算来提高性能。最近&#xff0c;OpenAI 的 o1 模型展示这种能力&#xff0c;但并未公开分…

apisix的real-ip插件使用说明

k8s集群入口一般都需要过负载均衡&#xff0c;然后再到apisix。 这时候如果后台业务需要获取客户端ip&#xff0c;可能拿到的是lb或者网关的内网ip。 这里一般要获取真实ip需要做几个处理。 1. 负载均衡上&#xff0c;一般支持配置获取真实ip参数&#xff0c;需要配置上。然…

Cloudflare 2024 网络流量回顾:洞悉网络发展趋势与安全挑战

Cloudflare 近日发布了 2024 年网络流量回顾报告&#xff0c;为我们提供了宝贵的全球互联网流量数据。这份报告涵盖了 IPv4/IPv6 比例、HTTP 协议版本占比、API 客户端语言分布、浏览器市场份额以及机器人流量分析等多个方面&#xff0c;为我们理解当前网络发展趋势和安全挑战提…

profinet转ModbusTCP网关,助机器人“掀起”工业智能的惊涛骇浪

在现代汽车制造过程中&#xff0c;生产设备的精确控制与实时监测是确保产品质量和生产效率的关键。某汽车制造厂在其生产线上应用了可编程逻辑控制器&#xff08;PLC&#xff09;和压力传感器&#xff0c;这两种设备分别使用稳联技术Profinet和ModbusTCP协议&#xff08; WL-A…

linux——网络计算机{序列化及反序列化(JSON)(ifdef的用法)}

linux——网络&#xff08;服务器的永久不挂——守护进程&#xff09;-CSDN博客 目录 一、序列化与反序列化 1. 推荐 JSON 库 2. 使用 nlohmann/json 示例 安装方法 基础用法 输出结果 3. 常见操作 4. 其他库对比 5. 选择建议 二、ifdef宏的用法 基本语法 核心用途…

RabbitMQ 从入门到精通:从工作模式到集群部署实战(五)

#作者&#xff1a;闫乾苓 系列前几篇&#xff1a; 《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;一&#xff09;》&#xff1a;link 《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;二&#xff09;》&#xff1a; lin…

用pytorch实现一个简单的图片预测类别

前言&#xff1a; 在阅读本文之前&#xff0c;你需要了解Python&#xff0c;Pytorch&#xff0c;神经网络的一些基础知识&#xff0c;比如什么是数据集&#xff0c;什么是张量&#xff0c;什么是神经网络&#xff0c;如何简单使用tensorboard,DataLoader。 本次模型训练使用的是…

【提示工程】:如何有效与大语言模型互动

随着人工智能技术的快速发展,大语言模型(LLM)如 GPT 系列在各类任务中的应用越来越广泛。从文本生成到代码编写,从数据分析到内容创作,这些模型展现出了强大的能力。然而,要充分发挥大语言模型的潜力,关键在于如何设计高质量的提示词(Prompts)。这门技术被称为提示工程…