当前位置: 首页 > news >正文

牛客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;}
};

相关文章:

  • 一款免费文件夹同步工具,旨在帮助用户在不同磁盘或文件夹间进行文件和目录的复制、移动和同步工作
  • C语言 树与二叉树基础部分
  • 关于Redis的持久化
  • 如何在 iPhone 上恢复已删除的短信
  • YOLOv10 超详细解析 | 网络结构、训练策略、论文解读
  • Linux第六章_实验案例:磁盘和文件系统管理(一)_实验案例:迁移/home分区
  • Golang发送邮件如何验证身份?有哪些限制?
  • Flink Rest Basic Auth - 安全认证
  • 使用 GPT-4 创作高考作文 2024年
  • 想在VBA软件中做个登录验证会员授权,用什么云服务器好?
  • Python Flask 入门开发
  • Invalid JSON text:“Invalid value.“ at position 0 in value for column ‘user.info
  • 引擎:UI
  • 用爬虫实现---模拟填志愿
  • SmartEDA VS Multisim/Proteus:电子设计江湖,谁主沉浮?
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • [deviceone开发]-do_Webview的基本示例
  • [数据结构]链表的实现在PHP中
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【翻译】babel对TC39装饰器草案的实现
  • IDEA常用插件整理
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • js算法-归并排序(merge_sort)
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React-flux杂记
  • ReactNative开发常用的三方模块
  • vuex 笔记整理
  • webpack入门学习手记(二)
  • 多线程事务回滚
  • 近期前端发展计划
  • 离散点最小(凸)包围边界查找
  • 力扣(LeetCode)965
  • 聊聊directory traversal attack
  • 免费小说阅读小程序
  • 使用API自动生成工具优化前端工作流
  • 使用putty远程连接linux
  • 数据结构java版之冒泡排序及优化
  • 微服务入门【系列视频课程】
  • 学习笔记:对象,原型和继承(1)
  • 正则表达式
  • ​你们这样子,耽误我的工作进度怎么办?
  • ![CDATA[ ]] 是什么东东
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (SpringBoot)第二章:Spring创建和使用
  • (第一天)包装对象、作用域、创建对象
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (接口自动化)Python3操作MySQL数据库
  • (四)c52学习之旅-流水LED灯
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)setTimeout 和 setInterval 的区别
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?