链接:https://ac.nowcoder.com/acm/problem/16502
来源:牛客网

题目描述

一个 n 行 n 列的螺旋矩阵可由如下方法生成:

从矩阵的左上角(第 1 行第 1 列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入 1, 2, 3, … , n ,便构成了一个螺旋矩阵。
下图是一个 n = 4 时的螺旋矩阵。

现给出矩阵大小 n 以及 i 和 j ,请你求出该矩阵中第 i 行第 j 列的数是多少。

输入描述:

输入共一行,包含三个整数 n,i,j ,每两个整数之间用一个空格隔开,分别表示矩阵大小、待求的数所在的行号和列号。

输出描述:

输出一个整数,表示相应矩阵中第 i 行第 j 列的数。


找规律:
i == 1 时,res = j
i == n 时,res = 3n-2-j+1
j == 1 时,res = 4n-2-i
j == n 时, res = n+i-1

然后递归, 每减少一层 ==> n-2, i-1, j-1,并且要加上外层的 4n-4

import sys
sys.setrecursionlimit(10000000)
n, i, j = map(int,input().split())def fn(n, i, j):if i == 1:return jif i == n:return 3*n-2-j+1if j == 1:return 4*n-2-iif j == n:return n+i-1return fn(n-2, i-1, j-1)+4*n-4print(fn(n, i, j))

这里有个问题

Python中默认的最大递归深度是989,当尝试递归第990时便出现递归深度超限的错误:

RuntimeError: maximum recursion depth exceeded in comparison

可以手动设置递归调用深度:

import sys
sys.setrecursionlimit(10000000)

牛客16502 螺旋矩阵相关推荐

  1. 牛客题霸 [矩阵元素查找] C++题解/答案

    牛客题霸 [矩阵元素查找] C++题解/答案 题目描述 已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的.设计查找算法返回所查找元素的二元数 ...

  2. 牛客题霸 [矩阵的最小路径和] C++题解/答案

    牛客题霸 [矩阵的最小路径和] C++题解/答案. 题目描述 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的 ...

  3. 牛客题霸 [矩阵乘法] C++题解/答案

    牛客题霸 [矩阵乘法] C++题解/答案 题目描述 给定两个nn的矩阵A和B,求AB. 题解: 都学过矩阵相乘把,[i][k]=[i][j]*[j][k] 代码: class Solution {pu ...

  4. 牛客题霸 [矩阵查找] C++题解/答案

    牛客题霸 [矩阵查找] C++题解/答案 题目描述 请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 每一行的数字都从左到右排序 每一行的第一个数字都比上一行最后一个数字大 ...

  5. 【牛客 -2A】矩阵(二分,字符串哈希)

    题干: 给出一个n * m的矩阵.让你从中发现一个最大的正方形.使得这样子的正方形在矩阵中出现了至少两次.输出最大正方形的边长. 输入描述: 第一行两个整数n, m代表矩阵的长和宽: 接下来n行,每行 ...

  6. 牛客网--蛇形矩阵(Java)

    题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void  ...

  7. 牛客题霸题目及题解汇总

    牛客题霸 单链表的选择排序 C++题解/答案 牛客题霸 最少素数拆分 C++题解/答案 牛客题霸 两数之和 C++题解/答案 牛客题霸 反转链表 C++题解/答案 牛客题霸 二分查找 C++题解/答案 ...

  8. 牛客观察 | 大厂疯狂招人背后: 中小企业要躺平“捡漏”吗?

    员工的离职与跳槽看上去是个人行为,实际上更多时候却是企业问题行为的折射,企业之间的竞争,归根结底,是人才管理的竞争. "XX企业高管Z某离职,去创业"."原XX产品团队负 ...

  9. 牛客题霸 [螺旋矩阵] C++题解/答案

    牛客题霸 [螺旋矩阵] C++题解/答案 题目描述 给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素. 题解: 其实就是模拟过程,先往左走,走到头向下走,到头后向左走,再向 ...

最新文章

  1. nexus 4 linux,Nexus 4刷机Ubuntu Touch教程
  2. 运行shell命令并捕获输出
  3. python turtle库有什么用_Python中turtle库的使用
  4. 中间省略_SpringBoot2 高级案例(03): 整合sharding-jdbc中间件,实现数据分库分表
  5. uni-app 七牛云上传文件
  6. timthumb.php 2.814,苏醒主题Grace8.0最新版(免费更新)
  7. 高性能分布式锁-redisson
  8. 发那科程序全部输出_走,去看看发那科机器人全新的自动化解决方案!
  9. 华硕主板怎么开启tpm2.0
  10. qt可以实现创建临时无线热点吗?_数据线断了,身边又没有路由,如何无线高速传输文件?...
  11. Oracle行转列实例
  12. 【信号处理第十二章】转置卷积
  13. 算法与数据结构 第1章 当我们谈论算法的时候,我们在谈论什么?
  14. 利用CAM350快速完成拼板
  15. FileZilla Server多实例监听
  16. Python str count方法
  17. Microsoft Teams通话质量仪表盘(CQD)怎么玩?
  18. 推荐 10 个节省时间的 Mac 键盘快捷键
  19. AI具备创造力入选Science年度十大科学突破
  20. Java算法——整数转罗马数字(LeetCode第12题)

热门文章

  1. LeetCode 1095. 山脉数组中查找目标值(二分查找)
  2. EM(期望极大化)算法及其推广
  3. LeetCode 665. 非递减数列(双指针)
  4. 爬虫必须学会的正则表达式
  5. python经典100例(41-60)
  6. 大公司稳定工作和创业之间如何选择?
  7. 图谱实战 | 安全领域知识图谱建设与典型应用场景总结
  8. 论文浅尝 | 使用预训练深度模型和迁移学习方法的端到端模糊实体匹配
  9. Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果
  10. ASP.NET MVC 扩展HtmlHelper类为 js ,css 资源文件添加版本号