题目:输入一个N*N矩阵,顺时针旋转打印出来。
例如:
输入
1 2 3
4 5 6
7 8 9
输出
7 4 1
8 5 2
9 6 3

这里使用两个for循环就完成了,数组的题目,经常都是for循环就可以解决的,代码中主函数都是为了处理输入,因为矩阵的大小未知,只能读取第一行来判断。

代码如下:

package xiecheng;import java.util.Scanner;public class RotateMatrix90 {public static void main(String[] args) throws Exception {//第一步:这一部分是处理输入的,从命令行读取一行Scanner in = new Scanner(System.in);String s = in.nextLine();   //读取一行输入String[] s1 = s.split(" ");  //按空格分割字符串,得到字符串叔祖//第二步:根据第一行数据长度创建合适的矩阵,并将第一行的数据读入int[][] matrix = new int[s1.length][s1.length];for(int i = 0; i <= s1.length - 1; i++) {matrix[0][i] = Integer.valueOf(s1[i]);}//第三步:读入剩下的N-1行数据int rows = 1;while(rows <= s1.length - 1) {for(int i = 0; i <= s1.length - 1; i++) {matrix[rows][i] = in.nextInt();}in.nextLine(); //这是读取换行符,最好不要省略rows++;}//第四步:调用自定义的函数来进行处理rotate_90_degree(matrix);//第五步:打印结果printMatrix(matrix);}//把数组顺时针旋转90°输出public static void rotate_90_degree(int[][] matrix) throws Exception {if (matrix == null) {throw new Exception();}int len = matrix.length - 1;for(int i = 0; i <= len / 2; i++) {  //控制矩阵外环for(int j = i ; j <= len - i - 1; j++) {   //控制环的每一行移动,注意每一行的第一个元素移动到了最后一位,// 而且最后一位不需要移动//首先临时存储,避免被覆盖int temp1 = matrix[i][j];int temp2 = matrix[j][len-i];int temp3 = matrix[len - i][len - j];//System.out.println(matrix[len-j][i] + "," + temp1 + "," + temp2 + "," + temp3);//然后把值进行移动matrix[i][j] = matrix[len-j][i];  //更新上边一行,从左到右matrix[j][len-i] = temp1;   //更新右边一列,由上到下matrix[len-i][len-j] = temp2;   //更新下面一行,从右到左matrix[len-j][i] = temp3;   //更新左边一列,由下到上}}return;}//顺序打印矩阵元素private static void printMatrix(int[][] matrix) {for(int i=0;i<matrix.length;i++) {for(int j=0;j<matrix.length;j++) {System.out.print(matrix[i][j]+" ");}System.out.println();}}
}

把N*N矩阵顺时针旋转90°输出(2018携程校招笔试题)相关推荐

  1. 2018有赞校招笔试题

    昨天晚上参加了有赞校招Java类笔试,题目总体难度适中,这里我给大家分享一下这次笔试的三个编程题. 第一题: 1.题目 2.思路 我对这个题目的基本思路是用空格分隔字符串得到字符串数组,该字符串数组元 ...

  2. CVTE的c语言面试题,2018 CVTE 前端校招笔试题整理

    昨天晚上(7.20)做了CVTE的前端笔试,总共三十道题,28道多选题,2道编程题 .做完了之后觉得自己基础还是不够扎实,故在此整理出答案,让自己能从中得到收获,同时给日后的同学一些参考. 首先说一下 ...

  3. 拼多多2018届毕业生校招笔试题

    列表补全 题目 在商城的某个位置有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次翻页,用offset ...

  4. 2018网易游戏校招笔试题

    2017年4月15日的网易游戏实习生校招题目,3道题,2小时,对于没有经过ACM训练的人来说时间挺紧,最后没做完.但是毕竟猪场挑高手,自己技不如人,还需要多多努力.回头自己整理了下自己做得题目.可能有 ...

  5. 2018年小米校招笔试题

    我们设计了整数三角形,每一行都比上一行多出一个数,而每个数字都等于它上方与左上方两个数字之和,给出一个数字,求最先出现在哪一行 #include<iostream> #include< ...

  6. 2018 年百度校招笔试题详解

    C++ 后置++ 重载 只会调用A的func() 记住大端是反过来的,小端是正的 虚函数不能申请为构造函数 C++ 多态 仔细看,C选项是C语言的内存分配. 注意是选错误的,注意一定是 剑指offer ...

  7. 2018阿里实习校招笔试题

    有一个9位数的正整数x,去除掉中间的第5位的数字得到整数y(例如x=123456789,则y=12346789),求问存在多少个这样的x,使得x可以被y整除?(9000个,暴力求解出来的,不知道有没有 ...

  8. 矩阵顺时针旋转90°、180°、270°

    问题及代码: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:sdoj.cpp * 作 者:李楠 * 完成日期:201 ...

  9. 编写程序python、实现将矩阵顺时针旋转90°_Java实现矩阵顺时针旋转90度的示例...

    实现矩阵的转置较为容易,只需要将纵横下标互换即可.实现矩阵旋转稍微麻烦一点. 解题思路: 矩阵转换90度,则原矩阵的纵下标转变为新矩阵的横下标:原矩阵的横下标转变为新矩阵的纵下标,并且顺序相反. pu ...

  10. 矩阵顺时针旋转90度

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! ---- ...

最新文章

  1. Docker 1.7.0 深度解析
  2. 大型网站架构系列:分布式消息队列
  3. Ubuntu 12.04 安装设置gcc4.4
  4. 查python答案的软件-中国大学MOOC的APP慕课用Python玩转数据答案查题公众号
  5. 让一个软件系统同时支持多个多种数据库灵活配置,让客户可以任意配置各个核心数据库部分...
  6. 最流行6种微服务RPC技术,你一定要知道
  7. seay代码审计工具_“代码审计”了解一下
  8. 百人计划(图形部分)Bump Mapping(凹凸贴图映射技术)
  9. 奥斯卡大乌龙,然而人工智能也预测《爱乐之城》为最佳影片
  10. python求一元三次方程的根_方程的计算机处理924_Fortran
  11. Java计算10000天出生纪念日
  12. Vue3 + TS(一)- 邂逅Vue
  13. 数控编程软件可模拟刀具在三维曲面上的实时加工过程
  14. POJ1830开关问题
  15. Windows目录结构、移动、复制、搜索文件及文件夹等
  16. 大众点评CAT开源监控系统剖析
  17. 精准化测试之:jacoco实现增量代码覆盖率统计
  18. Servlet技术总结
  19. 《时生》BY东野圭吾
  20. 购买计算机的英语作业,《计算机专业英语》作业.doc

热门文章

  1. NL2SQL领域:RAT-SQL论文笔记
  2. IPC$入侵的4种方式
  3. 龙芯cpu 3A3000搭建electron运行环境
  4. Oracle后台进程及其作用简介
  5. Codeforces Beta Round #94 (Div. 1 Only)A. Statues
  6. 基于C51实现测试人体反应速度
  7. 电脑鼠标双击桌面图标打不开怎么办
  8. 冰冻三尺,非一日之寒。数据解析——xpath(3)
  9. Linux命令:常用进程查看命令
  10. 【luogu3403】跳楼机 [同余最短路]