社区
数据结构与算法
帖子详情
请问有没有关于将一个2维数组旋转90度的算法?
Brunhild
2003-12-12 10:23:35
例如一个2维数组:
1,2,3
4,5,6
顺时针旋转90度后成为:
4,1
5,2
6,3
逆时针旋转后变成:
3,6
2,5
1,4
...全文
105
5
打赏
收藏
请问有没有关于将一个2维数组旋转90度的算法?
例如一个2维数组: 1,2,3 4,5,6 顺时针旋转90度后成为: 4,1 5,2 6,3 逆时针旋转后变成: 3,6 2,5 1,4
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dengsf
2003-12-14
打赏
举报
回复
写错一些。
a[i][m-1-j] 改为 a[m-1-j][i].
虽然已经结帖,但还是希望楼主能看到。
Brunhild
2003-12-12
打赏
举报
回复
矩阵的东西早就忘清光了,能不能给段代码或提示啊
lygfqy
2003-12-12
打赏
举报
回复
用线性代数中的矩阵转换即可
dengsf
2003-12-12
打赏
举报
回复
按错了,继续。下面是C伪码而已,编译肯定不过,只是说明问题而已。
//a 是原数组, m 是行数, n 是列数。
//顺时针转换 a[][],返回 b[][].
int[][] clockwise( int[][] a ,int m, int n )
{
int[][] b = new int(m*n);
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
b[i][j] = a[i][m-1-j];
}
}
return b;
}
dengsf
2003-12-12
打赏
举报
回复
比较简单吧,应该不必用到矩阵,稍微观察一下就可以编码了。
设原矩阵为 A[M,N],则生成结果为 B[M,N],
我写写我时针的思路,逆时针类似。
python 二
维
数组
90
度
旋转
的方法
如下所示: #!/usr/bin/env python #-*- coding: utf-8 -*- [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] 2
维
数组
顺时针
90
度
旋转
后结果如下 [0, 0, 0, 0] [1, 1, 1, 1] [2, 2, 2, 2] [3, 3, 3, 3] [0][1] <==> [1][0] [0][2] <==> [2][0] [0][3] <==> [3][0] [1][2] <==> [2][1] [1][3] <==> [3][1] [2][3] <==> [3][2] data
leetcode二
维
数组
-programming_exercises:leetcode、nowcoder刷题之路
leetcode二
维
数组
编程练习 包含常见的编程网站的练习习题(leetcode、牛客等)----待完成中... 也同时包含复习面试的编程练习 该src/main/java目录下,以文件夹命名,表示的是不同的来源 每个文件均可单独运行 其他IDEA克隆项目时,注意配置IDEA,gradle,jdk等,保证项目正常运行 Git仓库: 排序
算法
总结 面试编程题... 剑指Offer编程题目录 二
维
数组
中的查找: 替换空格: 从尾到头打印链表: 重建二叉树: 用两个栈来实现队列:
旋转
数组
的最小数字: 斐波那契数列: 跳台阶: 跳台阶2: 矩形覆盖: 二进制中1的个数 数值的整数次方: 调整
数组
顺序,使奇数位于偶数前面: 链表中倒数第k个节点: 反转链表: 合并两个排序的链表 树的子结构 二叉树的镜像 顺时针打印矩阵 包含main函数的栈 栈的压入、弹出序列 从上往下打印二叉树 二叉搜索树的后序遍历序列 二叉树中和为某一值的路径 复杂链表的复制 二叉搜索树与双向链表 字符串的排列 字符串组合 最长重复子串
数组
中出现次数超过一半的数字 最小的K个数 连续子
数组
的最大和 整数中1出现的次数
leetCode 面试高频
算法
整理-2020
2020高频面试
算法
整理 leetcode ,18个大类,80+到常见
算法
题。 1.热身题|1)查找唯一数字|2)查找N/2数字|3)判断数字是否存在|4)合并二叉树|5)泡鸡蛋问题|2.互联网公司最常见的面试
算法
题有哪些?|3.TOP INTERVIEW QUESTIONS (热门面试问题)|4.模拟|1)加油站|2)LRU缓存机制|3)快乐数|4)生命游戏|5)两整数之和|6)FIZZ BUZZ|5.
数组
|1)乘积最大子序列|2)求众数|3)
旋转
数组
|4)存在重复元素|5)移动零|6)打乱
数组
|7)两个
数组
的交集 II|8)递增的三元子序列|9)搜索二
维
矩阵 II|10)除自身以外
数组
的乘
leetcode矩阵
旋转
任意角
度
-Algorithm:
算法
leetcode矩阵
旋转
任意角
度
数据结构 一. 线性表 1.
数组
数组
具有随机访问特性,灵活使用
数组
的索引
数组
有序的话,问题往往会变得简单 对于有序或局部有序的一
维
数组
,要想到二分查找
算法
,并学会随机应变 对于元素特殊的
数组
,注意寻找特殊点,比如有序的临界点,二
维
数组
的四个角 对于二
维
数组
,定位某个特定元素需要 行指针i和列指针j;定位
一个
二
维
数组
的子
数组
则需要 row1,row2,col1,col2 注意二
维
数组
只有一行或一列的特殊情况
数组
的快速排序
算法
要熟记于心,并且注意partition函数的应用,partition函数每次确定
一个
元素(记作target)的最终位置,并返回该位置,该位置之前的元素都小于target,该位置之后的元素都大于 target。我们可以判断该返回位置是否满足一定条件来提前结束快速排序。 对
数组
排序可以用 Arrays.sort(array, new Comparator<>()),并且可以自定义比较器 专题一:二分查找及其变形 基本二分查找:在有序
数组
中查找某个元素target的位置 查找目标元素的插入位置 查找目标元素第一次出现的位置 查找目标
LeetCode判断字符串是否循环-algorithm:
算法
LeetCode判断字符串是否循环 Coding Interviews 1. 二
维
数组
中的查找 在
一个
二
维
数组
中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成
一个
函数,输入这样的
一个
二
维
数组
和
一个
整数,判断
数组
中是否含有该整数。 2. 替换空格 将
一个
字符串中的空格替换成“ ”。 3. 从尾到头打印链表 4. 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 5. 两个栈实现队列 6.
旋转
数组
的最小数字 把
一个
数组
最开始的若干个元素搬到
数组
的末尾,我们称之为
数组
的
旋转
。 输入
一个
非递减排序的
数组
的
一个
旋转
,输出
旋转
数组
的最小元素。 例如
数组
{3,4,5,1,2}为{1,2,3,4,5}的
一个
旋转
,该
数组
的最小值为1。 NOTE:给出的所有元素都大于0,若
数组
大小为0,请返回0。 7. 斐波那契
数组
延伸:跳台阶,瓷砖覆盖 8. 二进制中1的个数 9.
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章