牛客NC18 顺时针旋转矩阵【中等 数学 Java/Go/PHP/C++】

2024-06-10 05:12

本文主要是介绍牛客NC18 顺时针旋转矩阵【中等 数学 Java/Go/PHP/C++】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

在这里插入图片描述
在这里插入图片描述

题目链接:
https://www.nowcoder.com/practice/2e95333fbdd4451395066957e24909cc
https://www.lintcode.com/problem/161/

思路

在这里插入图片描述

Java代码

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param mat int整型二维数组* @param n int整型* @return int整型二维数组*/public int[][] rotateMatrix (int[][] mat, int n) {//1:水平翻转//rs:当前处理的第一行,re:当前处理的最后一行int rs = 0, re = n - 1;while (rs <= re) {//col:当前处理的第col列,rs行和re行的col的数进行交换for (int col = 0; col < n ; col++) {int t = mat[rs][col];mat[rs][col] = mat[re][col];mat[re][col] = t;}rs++;re--;}//2.主对角线翻转for (int i = 0; i < n ; i++) {for (int j = 0; j < i ; j++) {int t = mat[i][j];mat[i][j] = mat[j][i];mat[j][i] = t;}}return mat;}
}

Go代码

package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param mat int整型二维数组* @param n int整型* @return int整型二维数组*/
func rotateMatrix(mat [][]int, n int) [][]int {//1.水平翻转rs := 0re := n - 1for rs <= re {for col := 0; col < n; col++ {tmp := mat[rs][col]mat[rs][col] = mat[re][col]mat[re][col] = tmp}rs++re--}//2.对角线翻转for i := 0; i < n; i++ {for j := 0; j < i; j++ {tmp := mat[i][j]mat[i][j] = mat[j][i]mat[j][i] = tmp}}return mat
}

PHP代码

<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param mat int整型二维数组 * @param n int整型 * @return int整型二维数组*/
function rotateMatrix( $mat ,  $n )
{//水平翻转$rs=0;$re = $n-1;while ($rs<=$re){for($col=0;$col<$n;$col++){$tmp = $mat[$rs][$col];$mat[$rs][$col] = $mat[$re][$col];$mat[$re][$col] = $tmp;}$rs++;$re--;}//对角线翻转for($i=0;$i<$n;$i++){for($j=0;$j<$i;$j++){$tmp = $mat[$i][$j];$mat[$i][$j] = $mat[$j][$i];$mat[$j][$i] =$tmp;}}return $mat;
}

C++ 代码

#include <bits/types/struct_tm.h>
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param mat int整型vector<vector<>> * @param n int整型 * @return int整型vector<vector<>>*/vector<vector<int> > rotateMatrix(vector<vector<int> >& mat, int n) {//水平翻转int rs=0,re =n-1;while(rs<=re){for(int c=0;c<n;c++){int tmp = mat[rs][c];mat[rs][c] = mat[re][c];mat[re][c] =tmp;}rs++;re--;}//对角线翻转for(int i=0;i<n;i++){for(int j=0;j<i;j++){int tmp = mat[i][j];mat[i][j]=mat[j][i];mat[j][i]=tmp;}}    return mat;}
};

这篇关于牛客NC18 顺时针旋转矩阵【中等 数学 Java/Go/PHP/C++】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047300

相关文章

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环