旋转图像

  • 题目
    • 大致思路
    • 代码实现

题目

大致思路

直接修改旋转之后的矩阵:也就是说,直接计算旋转后的位置即可,分析如下:

  1. 原始矩阵

     1 2 34 5 67 8 9
    
  2. 调换对角元素后的矩阵:对角元素的规律是:00-22,01-12,10-21,中间两个数字和外面两个数字加起来相等,等于矩阵的长度-1。

    9 6 3
    8 5 2
    7 4 1
    
  3. 调换第一行与最后一行,即可得到目标矩阵:00-20,01-21,02-22,行索引之和为长度-1.

    7 4 1
    8 5 2
    9 6 3
    

代码实现

class Solution {public void rotate(int[][] matrix) {//调换反对角线对称的对角元素for(int i = 0;i<matrix.length;i++){for(int j = 0;j<matrix.length-i;j++){int temp = matrix[i][j];matrix[i][j] = matrix[matrix.length-j-1][matrix.length-i-1];matrix[matrix.length-j-1][matrix.length-i-1] = temp;}}//将行序完全颠倒for(int i = 0;i<matrix.length;i++){for(int j = 0;j<matrix.length/2;j++){int temp = matrix[j][i];matrix[j][i] = matrix[matrix.length-1-j][i];matrix[matrix.length-1-j][i] = temp;}}}
}

20190817:(leetcode习题)旋转图像相关推荐

  1. JVAV学习小练习(一)之leetcode习题之接雨水

    leetcode习题之接雨水 一.题目描述 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水.(图片是从leetcode拉过来的) ...

  2. 【LeetCode】旋转图像

    系列文章目录 文章目录 系列文章目录 前言 一.旋转图像 二.使用步骤 解法一:先延反对角线对称,再上下翻转 解法二: 总结 前言 一.旋转图像 给定一个 n × n 的二维矩阵 matrix 表示一 ...

  3. Leetcode 48. 旋转图像 (每日一题 20210813)

    给定一个 n × n 的二维矩阵 matrix 表示一个图像.请你将图像顺时针旋转 90 度.你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要 使用另一个矩阵来旋转图像.示例 1 ...

  4. leetcode —— 48. 旋转图像

    给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示例 1: 示例 2 ...

  5. C++ 链表 leetcode习题总结

    链表的实现 struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(null ...

  6. 20191026(补):(leetcode习题)最长的斐波那契子序列的长度

    最长的斐波那契子序列的长度 题目 大致思路 代码实现 题目 给定一个严格递增的正整数数组形成序列,找到 A 中最长的斐波那契式的子序列的长度.如果一个不存在,返回 0 . 两个示例: 输入: [1,2 ...

  7. 20191023:(leetcode习题)最大连续1的个数 III

    最大连续1的个数 III 题目 大致思路 代码实现 题目 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 .返回仅包含 1 的最长(连续)子数组的长度. 输入:A ...

  8. 20191021:(leetcode习题)乘积小于K的子数组

    乘积小于K的子数组 题目 大致思路 代码实现 题目 给定一个正整数数组 nums.找出该数组内乘积小于 k 的连续的子数组的个数. 输入: nums = [10,5,2,6], k = 100 输出: ...

  9. 20191019:(leetcode习题)第K个语法符号

    第K个语法符号 题目 大致思路 代码实现 题目 在第一行我们写上一个 0.接下来的每一行,将前一行中的0替换为01,1替换为10. 给定行数 N 和序数 K,返回第 N 行中第 K个字符.(K从1开始 ...

最新文章

  1. rundeck入门-初步操作
  2. CocoaPod 使用之后知后觉
  3. girton college map
  4. LLBL Gen Pro 设计器使用指南
  5. 启动docker容器时报错:iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT -
  6. java 写文件 异常 磁盘空间满_系统磁盘空间满的一个问题
  7. Spring Boot 面试题
  8. 查询长期未登录AD的用户
  9. 解决 Linux 端口被占用问题
  10. 一个有趣的.net程序死锁问题
  11. mysql查询条件中使用 或 !-的问题
  12. I2C总线协议原理介绍
  13. G.703接口和E1接口区别
  14. mysql translate 函数_详解Oracle中的translate函数和replace函数
  15. PVE7.2-3直通独显 nvidia 1080ti
  16. 安卓Android手机汽车租赁系统app毕业设计
  17. 下载安装使用Canal
  18. 利用Wifidog实现微信wifi连接以及自写认证服务器
  19. 谷歌,高德,必应地图中英文显示
  20. 使用nid命令修改 db name 及 dbid

热门文章

  1. 裸奔时代,如何找回自己的隐私?
  2. 英特尔首推异构编程神器 oneAPI,可让程序员少加班!
  3. 双十一,不玩盖楼,直接大额降价!
  4. 微软全球执行副总裁沈向洋:人工智能的机遇和挑战
  5. 程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!
  6. 史上第一代图形浏览器往事
  7. 一个历时五天的 Bug,是如何被灭的?
  8. 5G 登上“神坛”,区块链裁员求生!
  9. @程序员,你真得了解每天打交道的字节吗?
  10. 鏖战九载,Google 是否会因 Oracle 而弃用 Java?