2021-04-01:给定一个正方形矩阵matrix,原地调整成顺时针90度转动的样子。[[a,b,c],[d,e,f],[g,h,i]]变成[[g,d,a],[h,e,b],[i,f,c]]。

福大大 答案2021-04-01:

四数交换。先外圈交换,再内圈交换。

代码用golang编写。代码如下:

package main

import "fmt"

func main() {
matrix := [][]int{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}
printMatrix(matrix)
rotate(matrix)
printMatrix(matrix)
} func rotate(matrix [][]int) {
matrixLen := len(matrix)
if matrixLen <= 1 {
return
}
a := 0 //左上行
b := 0 //左上列
c := matrixLen - 1 //右下行
d := c //右下列 //左上 右上 右下 左下
//a,b a,d c,d c,b
for a < c {
for j := a; j < c; j++ {
//四数交换
matrix[a][b+j], matrix[a+j][d], matrix[c][d-j], matrix[c-j][b] = matrix[a+j][d], matrix[c][d-j], matrix[c-j][b], matrix[a][b+j]
}
a++
b++
c--
d--
} }
func printMatrix(matrix [][]int) {
for i := 0; i < len(matrix); i++ {
for j := 0; j < len(matrix[0]); j++ {
fmt.Print(matrix[i][j], "\t")
}
fmt.Println("")
}
fmt.Println("-----------")
}

执行结果如下:


左神java代码

评论

2021-04-01:给定一个正方形矩阵matrix,原地调整成顺时针90度转动的样子。[[a,b,c],[d,e,f],[g,h,i]]变成[[g,d,a],[h,e,b],[i,f,c]]。的更多相关文章

  1. 2018/04/01 每日一个Linux命令 之 sleep

    今天看到一个很有意思的指令. sleep [睡觉/休眠] 的意思. 可以用来将目前动作延迟一段时间.之后触发 -- sleep number[smhd] 重要参数 number : 时间长度,后面可接 ...

  2. 力扣---2319. 判断矩阵是否是一个 X 矩阵

    如果一个正方形矩阵满足下述 全部 条件,则称之为一个 X 矩阵 :    矩阵对角线上的所有元素都 不是 0    矩阵中所有其他元素都是 0给你一个大小为 n x n 的二维整数数组 grid ,表 ...

  3. 给定一个矩阵 A, 返回 A 的转置矩阵。

    给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7], ...

  4. 旋转图像 给定一个 n × n 的二维矩阵表示一个图像。

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

  5. python小白之矩阵matrix笔记(updating)

    Matrix #python学习之矩阵matrix 2018.4.18 # -*- coding: UTF-8 -*- from numpy import * import numpy as np i ...

  6. 题解 矩阵 matrix

    矩阵 matrix Description 给出一个 n × m 的矩阵.请在其中选择至多 3 个互不相交的,大小恰为 k × k 的子矩阵,使得子矩阵的 权值和最大. Input 第一行三个整数 n ...

  7. 2021.08.01 P4311 数字序列(左偏树)

    2021.08.01 P4311 数字序列(左偏树) [P4331 BalticOI 2004]Sequence 数字序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1 ...

  8. 2021.04.24【NOIP提高B组】模拟 总结

    2021.04.24[NOIP提高B组]模拟 总结 T1 题意:有一圈数.两两之间有加法或乘法操作, 问你开始断掉那条边使得剩下的序列经过某种操作后的值最大 看上去是个区间 dp .然后直接断环成列, ...

  9. 给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以返回12。

    分析,是一个dp的题目, 设f[i]表示以i为结尾的最大值,g[i]表示以i结尾的最小值,那么 f[i+1] = max{f[i]*arr[i+1], g[i]*arr[i+1],arr[i+1]} ...

  10. 移植u-boot.2012.04.01

    /*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc ...

随机推荐

  1. 观察APP运行日志

    一.Android采用log工具打印日志,他将各类日志分为五个等级 1.log.e:表示错误信息,比如可能导致程序崩溃的异常 2.log.w:表示警告信息 3.log.i:表示一般信息 4.log.d ...

  2. win8 改win7 最全教程(包含可能遇到的所有问题)

    今日,帮一个朋友的把她的系统从win8 优雅降级到了win7,大家都知道win8改win7 不好改啊.......话不多,上本人的总结的教程. 首先 ,win8改win7 需要对系统格盘,这里的原因我 ...

  3. GameObject.Find()、Transform.Find()查找游戏对象

    GameObject.Find 按广度进行查找 GameObject.Find("GameObject"); GameObject.Find("GameObject/Ch ...

  4. Java-14流Stream【创建一个简易for循环工具】

    Java-14流Stream 构造简易的循环取代for IntStream类提供了一个range()方法,可以生成一个流----由int值组成的序列 import static java.util.s ...

  5. Kattis mapcolouring(状压dp)

    刚知道vj上查看别人代码,看不到汉字...我理解的都注明后边了. #include <bits/stdc++.h> #define ll long long #define met(a, ...

  6. 人脸关键点的应用场景及重难点解析丨Dev for Dev 专栏

    本文为「Dev for Dev 专栏」系列内容,作者为声网视频组 AI 算法工程师 周世付. 人脸检测.人脸关键点检测,是计算机视觉的基础算法.许多酷炫应用背后,例如美颜.贴纸.人脸驱动 avatar ...

  7. CSS 高阶小技巧 - 角向渐变的妙用!

    本文将介绍一个角向渐变的一个非常有意思的小技巧! 我们尝试使用 CSS 绘制如下图形: 在之前,类似的图案,其实我们有尝试过,在 单标签实现复杂的棋盘布局 一文中,我们用单标签实现了这样一个棋盘布局: ...

  8. java异常--自定义异常

    java异常--自定义异常 步骤: 创建自定义异常类. 在方法中通过throw关键字抛出异常对象. 处理异常try-catch 捕获并处理,否则在方法声明处通过throws关键字指明抛出给调用者的方法 ...

  9. vulnhub靶场之HACKSUDO: 2 (HACKDUDO)

    准备: 攻击机:虚拟机kali.本机win10. 靶机:hacksudo: 2 (HackDudo),下载地址:https://download.vulnhub.com/hacksudo/hackdu ...

  10. Conda in Windows under MSYS2 and Zsh 的问题解决

    Conda in Windows under MSYS2 and Zsh 的问题解决 在Window11上使用git bash 安装zsh,并配置p10k主题,主要问题就是prompt中无法显示con ...