- 浏览: 79054 次
文章分类
最新评论
这是一个很疯狂的举动,这种冲动来自于一道面试题,当时有种暴走的举动,我一度认为这不可能做到,但是有一天我突然想到一个方法可以让它实现起来很简单,就是一个划整为零的问题。下面是实现代码:
import java.util.Arrays; import java.util.Collections; import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; class ArrayTest { public static void main(String[] args) { int[][] arr = new int[][]{ { 1, 2, 3, 4}, {12,13,14, 5}, {11,16,15, 6}, {10, 9, 8, 7} }; Queue<Integer> toQueue = new LinkedBlockingQueue<Integer>(); read(arr,toQueue); for(Integer i : toQueue){ System.out.print(i+"\t"); } } public static void read(int[][] arr,Queue<Integer> toQueue){ //计算这个矩阵的长和宽 int h = arr.length;//高 int w = arr[0].length;//宽 for(int i=0;i<w;i++){ toQueue.add(arr[0][i]); } if(h==1){ return; } //去掉二维数组的第一行并逆时针旋转90度 Queue<Integer> queue = new LinkedBlockingQueue<Integer>(); for(int i=w-1;i>=0;i--){ for(int j=1;j<h;j++){ queue.add(arr[j][i]); } } int[][] rArr = new int[w][h-1]; for(int m=0;m<rArr.length;m++){ for(int n=0;n<rArr[m].length;n++){ rArr[m][n] = queue.poll(); } } for(int m=0;m<rArr.length;m++){ System.out.println(Arrays.toString(rArr[m])); } System.out.println(); read(rArr,toQueue); } }
发表评论
-
使用javamail组件-----邮件发送
2013-08-09 16:35 487public static void sendMessag ... -
利用快速排序算法快速的取出前一千条数据
2013-08-06 15:49 536实现代码如下:原理是利用了快速排序‘分治’思想,判断左边区域 ... -
java的JNI本地调用代码
2013-06-21 11:56 475Jni中C++和Java的参数传递 如何使用JNI的一些基 ... -
如何解决在window下高并发TCP请求端口被占用问题
2013-05-02 09:43 3090当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通 ... -
Maven的简单使用
2013-04-26 11:44 714----------------准备工作---------- ... -
js 压缩工具使用
2013-04-19 11:40 733//测试代码 compiler("F:\\com ... -
解决加载相同的类
2013-04-19 09:38 627URLClassLoader classLoader1 = ... -
将长url转化为短url
2013-02-21 18:05 711public class ShortAddressUtil ... -
如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
2013-02-19 17:03 1016final String JPG = "ffd ... -
ChartDirect使用<制作统计图的组件>
2012-11-30 11:39 1542//创建一个由X,Y轴 ... -
获取字符拼音首字母
2012-10-08 13:41 782/** * @date 2010-1-22 * @bu ... -
jetty嵌入式采用xml配置
2012-09-24 09:40 1029Server server = new Server(); ... -
生成验证码图片
2012-08-29 17:29 926Java生成验证码 为了防止用户恶意,或者使用软 ... -
WebService分布式应用实现
2012-08-28 17:30 1166WebService 是一种跨语言的系统间交互标准,对外提供功 ... -
利用MulticastSocket发送广播信息
2012-08-24 11:35 809多播组通过 D 类 IP 地址和标准 UDP 端口号指定。D ... -
插件类的一种加载形式URLClassLoader
2012-08-22 10:11 791URL url = new URL("file ... -
部署RMI应用(服务器与RMI注册表分离方式)
2012-08-20 17:56 2152一般情况下,我们的部署RMI应用的时候是把服务器和RMI注册表 ... -
RMI远程调用
2012-08-03 17:42 771第一步:远程对象接口 WareHose.java pack ... -
使用JNDI获取DataSource对象
2012-08-03 14:24 835Tomcat的conf/context.xml在<Con ... -
获取摘要、加密、解密
2012-08-02 16:57 1228生成SHA或MD5摘要 MessageDigest sha ...
相关推荐
螺旋数组,也称为螺旋矩阵,是一种特殊的二维数组排列方式,其特点是元素按照顺时针或逆时针方向从外向内连续填充。在C++编程中实现螺旋数组,需要掌握基本的数组操作、循环控制以及条件判断。接下来,我们将深入...
29. 矩阵外围元素顺时针旋转:需要理解矩阵旋转的原理和二维数组的操作。 30. 奇数和偶数分离:数组元素的分类存储。 31. 长度超限字符串的删除:字符串数组操作。 32. 单向链表节点按数据域排序:链表操作和排序...
课程的目标是掌握二维数组的定义与初始化、指针的使用、指针与数组的关系、指针作为函数参数、指针数组以及结构的定义和使用,同时也涉及到了自引用结构的概念。 首先,我们来看二维数组,它在C语言中被视为元素为...
假设我们有一个n×n的二维数组,顺时针旋转90度意味着数组的最左边一列将变为新的最上面一行,而原来的最上面一行将成为新的最右边一列。逆时针旋转则是相反的过程。 为了实现这个功能,我们可以采用以下步骤: 1....
二维数组实际上是一组一维数组的集合,可以理解为行和列组成的表格。例如,我们可以声明一个5x5的二维数组来存储5行5列的矩阵元素。 2. **初始化数组**: 初始化二维数组时,我们通常使用大括号{}来指定每个元素的...
例如,一个二维数组可以看作是一个矩阵,每个元素由行索引和列索引定位。对于螺旋上三角,我们需要创建一个二维数组来存储数据。 2. **初始化二维数组**: 首先,我们需要定义一个二维数组,其大小通常会根据输入...
【蓝桥杯JAVA试题】是针对初级Java学习者的一道编程题目,主要考察的是二维数组的处理、循环控制以及条件判断等基础知识。题目要求编写一个程序,能够填充一个n阶方阵的上三角区域,填充规则是按照顺时针方向螺旋...
1. **二维数组初始化:**按指定规则填充二维数组。 2. **子矩阵旋转:**实现子矩阵的顺时针或逆时针旋转。 **详细解析:** - **输入输出:**从标准输入读取方阵的大小和魔法施放次数,以及每次魔法的具体参数。输出...
在VB中,我们可以利用二维数组来存储图片的像素信息,通过控制数组的索引顺序,模拟这个过程。 1. **创建图片数组**:首先,我们需要创建一个与图片大小相匹配的二维数组,每个元素代表图片的一个像素。数组的行数...
在编程领域,螺旋数组是一种特殊的二维数组布局,其中元素按照顺时针或逆时针的螺旋顺序填充。C++中的螺旋数组可以通过递归方法实现,这样的实现方式既直观又易于理解。本文将详细探讨如何使用C++递归来创建螺旋数组...
螺旋矩阵是一种特殊的二维数组,它的元素按照特定的螺旋顺序排列。在给定的题目中,我们需要生成一个n×n的正方形矩阵,其中包含了从1到n²的所有自然数,并且这些数字按照顺时针方向螺旋排列。这个问题是数据结构和...
灰度图像则是一维或二维数组,表示每个像素的灰度值。要将彩色图像转换为灰度图像,可以使用`rgb2gray`函数,如`gray_img = rgb2gray(img)`。 接下来,我们探讨图像的放大和缩小。在MATLAB中,`imresize`函数是实现...
在计算机科学中,生成螺旋矩阵是一个常见的编程练习,有助于理解二维数组的处理以及循环控制结构的应用。本次解析将围绕“螺旋矩阵(C语言版)”这一主题,深入探讨其核心概念、算法实现逻辑及C语言代码细节。 ### ...
读取BMP文件时,我们需要解析文件头和信息头来获取图像尺寸和格式,然后读取像素数据到内存中形成二维数组,每个元素代表一个像素的RGB颜色值。这个过程通常涉及二进制文件的读取操作,例如在C++中使用`ifstream`类...
- **二维数组处理**: 字符矩阵可以用二维数组来表示,因此需要掌握如何在二维数组中进行搜索。 - **方向遍历**: 除了传统的横向和纵向遍历外,还需要考虑斜向等方向上的遍历。 **实现思路**: 1. **读取输入**:...
矩阵旋转题目要求对二维数组进行操作,这需要掌握数组处理和矩阵变换的知识。顺时针旋转90度涉及到行与列的交换,对编程逻辑的组织有一定要求。 最大子阵问题是一个经典的动态规划或贪心算法题目,目标是找到矩阵中...
首先,代码中定义了多个二维数组用于存储不同的信息: - `int visit[M][M];`:用于标记当前位置是否已经被访问过。 - `int mp[M][M];`:用于存储最终的矩阵数据。 - `int mov[4][2]`:定义了四个方向的移动向量,...
BMP文件通常以二维数组的形式存储像素数据,通常是按行优先顺序。 在对BMP图像进行90度旋转时,我们需要进行以下几个关键步骤: 1. **读取图像**: 使用C++的文件流(fstream)或库(如OpenCV)来读取BMP文件的头...
位图通常由一个二维数组(或称为矩阵)表示,其中每个元素代表一个像素,包含该像素的色彩信息。位图的旋转可以通过两种主要方法来实现:仿射变换和逐像素旋转。 1. **仿射变换**: 仿射变换是一种线性几何变换,...