LeetCode 48. 旋转图像(转置+行逆置

关于文件内容行逆置问题(c语言) data.txt中内容如下: aaaaaa bbbbb cccccc cc dddd eee eee   结果存储到data2.txt eee eee dddd cccccc cc bbbbb aaaaaa   源代码如下: reverse1.c   #include #include int main(void) {         FILE *fi 阅读详情
class Solution {
    // 来自评论区降维打击的思路:先转置,再每行reverse
    public void rotate(int[][] matrix) {
        // trans
        for(int i=0;i<matrix.length;i++){
            for(int j=i;j<matrix[0].length;j++){
                int t=matrix[i][j];
                matrix[i][j]=matrix[j][i];
                matrix[j][i]=t;
            }
        }
        // 每行reverse
        for(int i=0;i<matrix.length;i++){
            int lo=0,hi=matrix[0].length-1;
            while(lo<hi){
                int t=matrix[i][lo];
                matrix[i][lo]=matrix[i][hi];
                matrix[i][hi]=t;
                lo++;
                hi--;
            }
        }
    }
}

这个思路实现非常简单,但是我不一定能想到

只能说这种题尽量先和转置这种基本操作,并且好实现的操作上靠

力扣——48.旋转图像(中等难度)——仅仅考验你的数学思维 48.旋转图像——仅仅考验你的数学思维算法目录合集地址说明题目说明题干原地址实现步骤思路分析代码实现方法代码测试部分代码耗用资源情况官方题解原地址答案一——转置加翻转思路分析代码实现复杂度答案二——旋转四个矩形思路分析代码实现复杂度 算法目录合集 地址    算法目录合集 说明   该地址指向所有由本人自己所经历的算法习题(也有可能仅仅是一个入门的案例或者是经典案例),仅仅为我做过而且比较有意思的,也许还会有一些我自己想出来的,出于兴趣写在这里,具体格式我会在下面列明,总目录也会在这里出现,方便查阅以及自己 阅读详情

相关推荐

海康威视 2DC 系列球机手机直连实用教程

海康威视2DC系列球机手机直连教程:首先确认设备支持直连功能并下载官方"海康互联"App;通过网线连接球机与路由器,使用SADP软件调整IP至同一网段;在App中添加设备并激活,完成调试即可远程查看监控画面。常见问题包括部分型号需远程解锁、网络连接异常等,可通过检查网络环境、联系客服等方式解决。本教程提供从准备到连接的完整指引,助您轻松实现手机监控管理。

海康威视技术支持 5413

矩阵转置、逆置

注意,下三角与上三角交换;而不是整个矩阵交换。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 489

Vivado IP核与约束文件管理指南:解决OOC警告、COE文件丢失与Block Design复用

本文详细介绍了Vivado IP核与约束文件管理的系统化方法,包括解决OOC警告、COE文件丢失与Block Design复用等常见问题。通过IP核锁定机制、分层约束架构和动态约束技术,提升FPGA工程的健壮性和团队协作效率,特别适合中大型项目开发。

weixin_30887919的博客 430

矩阵的逆和转置

矩阵的逆 (inverse matrix) (AB)−1=B−1A−1(A B)^{-1}=B^{-1} A^{-1}(AB)−1=B−1A−1 (ABC)−1=C1B−1A−1(A B C)^{-1}=C^{1} B^{-1} A^{-1}(ABC)−1=C1B−1A−1 矩阵的转置 (Transposes) (AB)T=BTAT(A B)^{\mathrm{T}}=B^{\mathrm{T}} A^{\mathrm{T}}(AB)T=BTAT 矩阵的逆和转置 (A−1)T=(AT)−1\le..

qq_25151621的博客 8169

告别实车测试:手把手教你用Vector VT平台搭建OBC/DCDC的HIL测试台架

本文详细介绍了如何利用Vector VT平台搭建新能源汽车OBC/DCDC的HIL测试台架,涵盖硬件选型、模型部署到自动化测试的全流程。通过HIL仿真测试技术,工程师可以高效验证动力域关键部件,大幅缩短开发周期并降低成本,特别适合新能源汽车三电系统的开发验证。

weixin_42659194的博客 340

操作不能完成 (错误 0x00000709) 共享打印机无法连接解决办法

环境:windows Server 2012 + Win10 客户端 问题:使用计算机名和IP地址可以正常连接打印机,但是使用另外的A记录或CN记录无法连接,报此错误 原因:这是打印服务DNS解析的问题 故障补充:假设你的服务器电脑名称叫print01,但是你又建了一条A记录或者CNname 叫PR01,就会发现使用额外的A记录或CN记录就无法连接 故障截图: 操作不能完成 (错误...

瑞哥的博客 3万+

字符串转置,反转,逆序

不严谨的可认为是同一个意思,详细信息,如下...

CarterYang0的博客 1550

单细胞测序数据读取实战指南:从入门到精通

本文提供了单细胞测序数据读取的实战指南,涵盖从标准10X Genomics格式到通用表达矩阵及RDS文件的读取方法。文章重点解析了数据读取的核心步骤、常见问题解决方案及进阶技巧,旨在帮助用户夯实数据分析基础,确保后续分析流程的准确性。

weixin_29095587的博客 460

力扣---leetcode48-旋转图像

本文介绍了原地旋转n×n矩阵90度的方法,通过两次翻转实现:先沿主对角线转置交换元素,再左右翻转每行。这种方法避免了直接坐标变换的复杂性,步骤清晰且不易出错。代码实现时需注意只处理矩阵右上部分防止重复交换。该方法时间复杂度O(n²),空间复杂度O(1),是面试中推荐的稳健解法。逆时针旋转可采用先左右翻转再转置的方案。

一个coder的博客 1万+

养龙虾之_因特尔UHD/ULtra/Arc核显跑大模型_安装ollama_跑qwen3.5:0.8b/9b_使用copaw1.0.1测试_并配置copaw技能效果炸裂---AI大模型应用探索0019

摘要:本文探讨了利用Intel UHD770核显运行大语言模型的可能性。通过使用Intel发布的ipex-llm项目工具包,成功在核显上运行了Qwen3.5系列模型。测试发现0.8B小模型运行流畅(3-5秒响应),但智能程度有限;而9B大模型虽然效果更好,但响应时间长达2分钟,且GPU/CPU占用率不高。实验证明Intel核显确实可以运行LLM,但实际效果和性能表现仍有提升空间,特别是对大模型的支持尚不理想。

添柴程序猿的专栏 237

由浅入深的详细解读汽车PDU与BDU

本文详细解读新能源汽车的PDU高压配电单元和BDU电池包断路单元,涉及电气件参数设计、选型、结构设计、电气安全、散热设计、继电器控制与诊断,提供汽车电子知识和技术解析。

让你爱上电路设计 1万+

力扣48:旋转矩阵

题目要求将n×n矩阵原地顺时针旋转90度。关键思路是通过四个位置为一组进行旋转交换:matrix[i][j] → matrix[j][n-i-1] → matrix[n-i-1][n-j-1] → matrix[n-j-1][i] → matrix[i][j]。遍历范围只需覆盖矩阵的四分之一区域(行n/2,列(n+1)/2),通过临时变量temp实现四个位置的循环赋值。该方法高效且满足原地操作要求,时间复杂度为O(n²)。

weixin_74285822的博客 1796

YOLO11涨点优化:注意力魔改 | 引入Deformable Attention (可变形注意力),灵活感受野自适应复杂形变目标

Deformable Attention为YOLO11带来的不仅是2.6个百分点的mAP提升,更是一种全新的“形变感知”范式。标准卷积的固定感受野在非刚性目标、多尺度变化和遮挡场景下力不从心——Deformable Attention恰好填补了这一空白。从架构设计到代码实现,从竞品对比到部署方案,从生态工具到安全风险,本文覆盖了将Deformable Attention引入YOLO11所需的全部知识链路。

2601_95807009的博客 286

【LeetCode 热题 100】48. 旋转图像——转置+水平翻转

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

最短的捷径就是绕远路,绕远路才是我的最短捷径。 1108

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【LeetCode】48. 旋转图像

本文介绍了n×n矩阵顺时针旋转90度的几种解法,重点分析转置+翻转、四角交换、数学公式和分块旋转四种算法。所有方法的时间复杂度均为O(n²),空间复杂度为O(1)。核心思想是通过数学变换找到旋转后的坐标,并原地交换元素。文章详细对比了各算法的特点,提供了关键代码实现和优化技巧,包括转置翻转优化、四角交换优化等。同时讨论了边界情况处理和算法优化策略,如处理奇数边长矩阵、优化循环结构等。这些方法都能在不使用额外空间的情况下高效完成矩阵旋转任务。

qq_32019341的博客 1352

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

力扣题解48. 旋转图像

力扣题解48. 旋转图像题解题思路代码结束语 题 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10

不想在做搬运工 339

转置与行反转——力扣48. 旋转图像

(即不占用额外内存空间)将其。要实现原地旋转,关键在于利用。

w1311823723的博客 521

每日一题:Leetcode-48 旋转图像

力扣题目解题思路java代码。

LIUCHANGSHUO的博客 999

力扣48.旋转图像

力扣48.旋转图像这道题要求把给定矩阵旋转90度,并且不允许使用额外矩阵来完成旋转图像。于是这道题只能使用原地旋转的方法来解决。

沉迷写代码的程序猿的博客 709

LeetCode 48. 旋转图像:原地旋转最优解法

本文解析了LeetCode第48题「旋转图像」的原地解法,重点介绍了按圈旋转、四元素循环交换的最优实现。该算法通过逐层处理矩阵,每次交换四个对应位置的元素,实现O(n²)时间复杂度和O(1)空间复杂度。文章详细拆解了代码逻辑,包括边界处理、圈数计算和核心交换步骤,并通过3×3矩阵实例演示了旋转过程。同时指出了常见误区如索引颠倒、赋值顺序错误等。最后还提供了另一种简洁解法思路(转置+反转)供参考。这种原地操作技巧对掌握数组类题目具有重要价值。

2401_86788218的博客 1057

面试经典150题[036]:旋转图像(LeetCode 48)

面试经典150题[036]:旋转图像(LeetCode 48)

YoungHong1992 1114

48. 旋转图像(Rotate Image)

48. 旋转图像(Rotate Image)题解直接旋转复杂度分析PythonJava(待完成)转置矩阵的性质复杂度分析PythonJava(待完成) 题解 直接旋转 图像旋转,实际上是这四个位置上的数对应旋转。 因此,需要找到这四个位置索引的相互关系: matrix[i][j]→matrix[j][n−i−1]→matrix[n−i−1][n−j−1]→matrix[n−j−1][i]matr...

朱师傅的博客 594

【力扣算法】48-旋转图像

题目 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ]...

ZeromaXHe的博客 649

leetcode_48 旋转图像

本文探讨了如何原地顺时针旋转90度n×n矩阵的三种方法。暴力解法通过新建矩阵实现旋转但不满足空间复杂度要求;转置+反转法先转置矩阵再反转每行,实现原地旋转;原地旋转法推导出四个位置的循环交换关系,通过分层处理实现高效旋转。第三种方法进一步优化为按层处理,减少边界条件判断。文章详细分析了每种方法的实现思路和代码,并提供了清晰的图示说明位置变换规律,帮助理解矩阵旋转的本质。

bdn_nbd的博客 859

LeetCode第48题:旋转图像(中等)

LeetCode第48题:旋转图像(中等) 题目: 解法一:找到了旋转之后的坐标规律,即(i,j)->(j,n-i)。 public void rotate(int[][] matrix) { int n = matrix.length; for (int i = 0; i < (n + 1) / 2; i ++) { for (int j = 0;...

new_whiter的博客 289
上一篇: LeetCode 39. 组合总和(回溯 去重
下一篇: LeetCode 49. 字母异位词分组(hashmap
RedemptionC
博客等级 码龄11年 103粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值