1.6 给定一幅由N*N矩阵表示的如下,其中每个像素的大小为4个字节,编写一个方法,将图像旋转90度。不占用额外内存空间能否做到?

类似leetcode:Rotate Image

思路:

我们这里以逆时针旋转为例(写代码时比较容易理解,顺时针旋转的实现思想相似),可以先将原矩阵以主对角线为对称轴,交换主对角线两侧的的元素,得到新的矩阵(如果是顺时针旋转,可以交换副对角线两侧的元素),再将该矩阵的第i行和第n-i-1行相交换,即得到逆时针旋转后的矩阵。

C++代码实现:

#include<iostream>
using namespace std; void rotate(int (*arr)[],int n)
{
int i,j;
/*for(i=0;i<n;i++)
{
for(j=1;j<n;j++)
{
swap(arr[i][j],arr[j][i]);
}
}
for(i=0;i<n/2;i++)
for(j=0;j<n;j++)
swap(arr[i][j],arr[n-i-1][j]);*/
for(i=; i<n; i++)
{
for(j=; j<n-i-; j++)
{
swap(arr[i][j],arr[n-j-][n-i-]);
}
}
for(i=; i<n/; i++)
for(j=; j<n; j++)
swap(arr[i][j],arr[n-i-][j]); } int main()
{
int A[][] =
{
{,,,},
{,,,},
{,,,},
{,,,}
};
rotate(A,);
for(int i=; i<; i++)
{
for(int j=; j<; j++)
cout<<A[i][j]<<",";
cout<<endl;
}
}

careercup-数组和字符串1.6的更多相关文章

  1. Base-64 字符数组或字符串的长度无效等问题解决方案

    项目特殊需要,调用ActiveX三维控件进行控件某一特殊部位的截图操作,这个截图保存由ActiveX控件控制保存到本地是没问题的,现在需要将这个截图上传到服务器,多人共享,就牵扯到需要读取本地文件…… ...

  2. c数组与字符串

    原文链接:http://www.orlion.ga/913/ 一.数组 定义数组: int count[9]; 赋值: int count[4] = { 3, 2, }; 未赋初值的元素用0初始化.如 ...

  3. C语言 第七章 数组与字符串

    一.数组 1.1.数组的概念 用来存储一组相同类型数据的数据结构.有点像班上放手机的手机袋,超市的储物柜. 特点:只能存放一种类型的数据,如全部是int型或者全部是char型,数组里的数据成为元素. ...

  4. js对象、数组转换字符串

    对象转换成字符串需要使用toString()方法. 1 var a = function(){ 2 console.log(111); 3 }; 4 var b = a.toString(); 5 c ...

  5. javascript中数组和字符串的方法比较

    × 目录 [1]可索引 [2]转换 [3]拼接[4]创建[5]位置 前面的话 字符串和数组有很多的相同之处,它们的方法众多,且相似度很高:但它们又有不同之处,字符串是不可变值,于是可以把其看作只读的数 ...

  6. json对象,数组,字符串总结

    关于json对象,数组,字符串的总结 什么是json? JSON(JavaScript Object Notation)  一种轻量级的数据交换格式,JSON采用完全独立于语言的文本格式...(来自百 ...

  7. @proprety数组字典字符串用copy和strong区别(深浅拷贝)

    ////  @proprety数组字典字符串用copy和strong区别(深浅拷贝).h//  IOS笔记//// /* _proprety________copy_strong_________h ...

  8. php byte数组与字符串转换类

    <?php /** * byte数组与字符串转化类 * @author ZT */ class Bytes { /** * 转换一个string字符串为byte数组 * @param $str ...

  9. 关于PHP数组转字符串详细介绍

    随着时代的发展,我们的开发技术也随着更新,对于PHP还是比较常用的,于是我研究了一下PHP数组转字符串,在这里拿出来和大家分享一下,希望对大家有用. 经常需要使用PHP处理字符string,PHP内置 ...

  10. PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)

    PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr;  //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...

随机推荐

  1. LightOj_1408 Batting Practice

    题目链接 题意: 击球训练中, 你击中一个球的概率为p,连续击中k1个球, 或者连续击空k2个球, 则训练结束. 求结束训练所击球次数的期望. 思路: 设f[x]为连续击中x个球, 距离结束训练所需要 ...

  2. 导入旧版本Android项目时的“Unable to resolve target ‘android

    在Ecplise + ATD + Android SDK的开发中,导入旧版本的Android项目时,往往会出现类似的如下错误 Error:Unable to resolve target 'andro ...

  3. Servlet高级应用---Servlet与缓存

    一]设置缓存文件的有效日期        重点方法:            HttpServletRequest类:                    1>String getRequest ...

  4. 解决cocos2d-X 2.0版本后创建的Android项目提示org.cocos2dx.lib.Cocos2dxActivity找不到问题

    原地址: http://blog.163.com/zhoulong19880518@126/blog/static/6070970220132511558143/ 解决方法:    复制 ***\co ...

  5. CF 33B String Problem

    对每个位置进行操作,求出最终变成相同字母的代价,然后把所有的位上代价加起来,使得总代价最小.res[i][j]表示将字母i+'a'和字母j+'a'变为相同的代价,设最终都变成字母k+'a',那么res ...

  6. OA学习笔记-004-Spring2.5配置

    一.jar包 (1)spring.jar (2)Aop包 aspectjrt.jaraspectjweaver.jar (3)动态代理 cglib-nodep-2.1_3.jar (4)日志 comm ...

  7. GIS应用及OpenGIS介绍

    转自:http://blog.csdn.net/cdl2008sky/article/details/7266680 GIS的三大应用第一类是政府应用,“电子政务” 是当今政府加强信息化建设的新方向, ...

  8. 第一章 用three.js创建你的第一个3D场景

    第一章 用three.js创建你的第一个3D场景 到官网下载three.js的源码和示例. 创建HTML框架界面 第一个示例的代码如下: 01-basic-skeleton.html 位于 Learn ...

  9. HDOJ --- Super Jumping! Jumping! Jumping!

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  10. OracleHelper[.Net 连接Oracle数据库的封装类]

    using System; using System.Configuration; using System.Data; using System.Data.OracleClient; using S ...