ccf201503-1 ccf 图像旋转(java代码编写)

最近在准备研究生复试的机试内容,难度大概为ccf2左右,由于博主以前没有写过ccf方面的题。所以最近在勤加练习。

总体来讲ccf第一道题目比较简单,一般在大一学习过编程的水平基本都可以解决,但是在联系过程中过程遇见了一个问题。

问题:ccf201503-1 ccf 图像旋转

这是2015年3月份的ccf考试第一道题

***问题描述
  旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。
  计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
  输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。
  接下来n行每行包含m个整数,表示输入的图像。
输出格式
  输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。
样例输入
2 3
1 5 3
3 2 4
样例输出
3 4
5 2
1 3
评测用例规模与约定
  1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。*斜体样式

首次解决方案

思路很简单,还是比较简单的。
第一步:定义一个二位数组,写一个双重for循环输入,将数值输入存储到数组之中。
第二步:写一个双重for循环,外层for循环控制列,从列最大—>列最小;内层for循环控制行,从行最小—>行最大。

/**
* @Title: Tuxiangxuanzhuan.java
* @Description: TODO :  201503-1 ccf 图像旋转
* @author: benjamin
* @date: 2020年4月24日 下午3:16:27
* @version V1.0*/
package welcome;
import java.util.Scanner;
public class Tuxiangxuanzhuan {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int m = scanner.nextInt();// 行int n = scanner.nextInt();// 列Integer[][] integers = new Integer[m][n];// 循环输入for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {integers[i][j] = scanner.nextInt();}}// 循环输出for (int i = n - 1; i > -1; i--) {for (int j = 0; j < m; j++) {System.out.print(String.valueOf(integers[j][i]) + " ");}System.out.println();}}
}

自己做完测试之后,发现没有问题,将代码提交至oj系统(这里不要忘记改掉类名,博主的英文水平一般打的拼音),结果如下:

发现代码逻辑确实没问题,但是爆出内存超出限制。仔细想了想,应该是做双层for循环输入Nextint()的时候出了问题,可能是因为java自身的问题。尝试优化了一下代码。

二次优化代码

package welcome;
import java.util.Scanner;
public class Tuxiangxuanzhuan {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String[] str = scanner.nextLine().split(" ");int m = Integer.valueOf(str[0]);// 行int n = Integer.valueOf(str[1]);// 列Integer[][] integers = new Integer[m][n];// 循环输入for (int i = 0; i < m; i++) {String[] strings = scanner.nextLine().split(" ");int tmp = 0;for (String string : strings) {integers[i][tmp] = Integer.valueOf(string);tmp++;}}// 循环输出for (int i = n - 1; i > -1; i--) {for (int j = 0; j < m; j++) {System.out.print(String.valueOf(integers[j][i]) + " ");}System.out.println();}}
}

这里想了想,只做单层for循环,每行的输入都作为一个字符串保留,然后使用split()函数,从中间劈开,循环放入数组中。
自己做完测试,发现没有问题,然后提交上ccf oj系统。结果如下:

思考:

i/o操作最耗费内存和时间,首次代码中,在每一次循环体中都要做一次i/o操作,所以复杂度O(n^2),优化之后,在外层for循环中做i/o,在内层for做数据操作,i/o时间复杂度o(n),优化时间。

ccf201503-1 ccf 图像旋转-内存限制问题相关推荐

  1. CCF——图像旋转201503-1

    问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 输入的第一行包含 ...

  2. 【CCF】201503-1图像旋转

    试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的 ...

  3. *5-1 CCF 2015-03-1 图像旋转

    图像旋转 题目描述 源代码 关于这题 题目描述 源代码 #include<iostream> #include<cstring> using namespace std;//C ...

  4. CCF201503-1 图像旋转(100分)

    试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. ...

  5. 应用OpenCV进行图像旋转和平移

    简 介: 本文中,你了解了了如何通过OpenCV完成对于图像的旋转和平移.我们首先通过 getRotationMatrix2D() 获取2D旋转矩阵,然后完成了对于图像的旋转.具体是通过warpAff ...

  6. freeImage图像旋转滤波

    原文:http://www.cnblogs.com/wangshide/archive/2012/04/25/2470693.html 1. 使用了 freeImage 图像库进行图像读取,保存(如何 ...

  7. 【Android RTMP】NV21 图像旋转处理 ( 图像旋转算法 | 后置摄像头顺时针旋转 90 度 | 前置摄像头顺时针旋转 90 度 )

    文章目录 安卓直播推流专栏博客总结 一. 后置摄像头顺时针旋转 90 度 二. 前置摄像头顺时针旋转 90 度 三. NV21 格式图像旋转代码 安卓直播推流专栏博客总结 Android RTMP 直 ...

  8. 信息学奥赛一本通(1127:图像旋转)

    1127:图像旋转 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 20701     通过数: 12507 [题目描述] 输入一个nn行mm列的黑白图像,将它顺时 ...

  9. CCF201503-1 图像旋转

    试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的 ...

  10. CCF201503-1 图像旋转(100分)【数学计算】

    试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. ...

最新文章

  1. FreeBSD Ports加速的方法
  2. 扎克伯格、张一鸣、宿华都公开道歉,AI算法不灵了吗?
  3. java maven 读写pdf_java读取pdf内容
  4. 【Linux使用技巧】linux 死机了怎么办
  5. SharePoint 2013 配置HTTPS(SSL)
  6. 放个手机在单位自动打卡_钉钉自动打卡(家校打卡,寒假特辑)
  7. 永磁直驱风力发电机结构图_国内首台10MW海上永磁直驱风力发电机研制成功
  8. 深入理解.bin文件和.nb0文件的结构
  9. 上班又能摸鱼啦!在M1芯片的macbook上刷朋友圈可还行?
  10. Linux下进程隐藏的常见手法及侦测手段
  11. MFC调用Qt生成的dll
  12. sqlyog同步mysql_大坑:用SQLyog连mysql的部分操作不能同步到从库
  13. 发布会不用开了?三星Galaxy Note 10 Plus完整规格泄露
  14. 游标sql server_学习SQL:SQL Server游标
  15. Python -- 使用if语句处理列表
  16. 云脉H5文档识别的性能评估指标
  17. LANDESK8.8版本操作说明书之服务器安装
  18. Stimulsoft Reports.JAVA 2022.4.3 Crack
  19. QQ空间视频下载详细教程(手机端)
  20. go第三方日志库uber-go/zap、lumberjack

热门文章

  1. c语言srand函数作用,C语言之rand()和srand()函数
  2. OpenDrive地图格式解析——案例分析
  3. 日系插画学习笔记(十):色彩基础
  4. java代码实现流程中的会签_一个简单的会签实例
  5. 桌面上计算机图标老是自动删除,win7系统总是自动删除桌面快捷方式怎么办
  6. 神圣罗马帝国(1157~1806)
  7. ERP是什么管理系统?
  8. 阿里云香港服务器解析后域名无法访问
  9. (OK) MIMP - 18 ( 5 nodes) - 抓包-缺少 MPTCP-JION - 分析 mptcp-kmsg-client-5-nodes-no-ping.txt
  10. xp系统dns服务器异常,电脑dns异常怎么修复,电脑dns异常修复方法介绍