Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >旋转一个矩阵,移动元素?(在理解了问题之后,如何编写流程/逻辑的一部分?)

旋转一个矩阵,移动元素?(在理解了问题之后,如何编写流程/逻辑的一部分?)
EN

Software Engineering用户
提问于 2016-10-08 18:18:22
回答 1查看 190关注 0票数 -1

下面是经典问题的java解决方案,即顺时针旋转nxn矩阵90度。

代码语言:javascript
运行
AI代码解释
复制
public void rotate(int[][] matrix, int n) {
for (int layer = 0; layer < n / 2; ++layer) {
int first = layer;
int last = n - 1 - layer;
for(int i = first; i < last; ++i) {
int offset = i - first;
// save top
 int top = matrix[first][i];

// left -> top
 matrix[first][i] = matrix[last-offset][first];

 // bottom -> left
 matrix[last-offset][first] = matrix[last][last - offset];

 // right -> bottom
 matrix[last][last - offset] = matrix[i][last];

 // top -> right
 matrix[i][last] = top;
 }
 }
}

下面是我尝试使用的方法: 1.理解问题陈述,假设。2.在最小的子任务中分解问题,并尝试用简单的英语写出/解释解决方案。3.编写伪代码4.编写实际代码。

我被困在#3和#4之间。我有方法,知道逻辑,但在编写解决方案的一部分方面遇到了困难。让我展示一下:

方法:给定这个nxn矩阵:

代码语言:javascript
运行
AI代码解释
复制
[00 01 02 03
 10 11 12 13
 20 21 22 23
 30 31 32 33]

这个矩阵可以通过旋转突出的内外环(实际上不是圆形)旋转。外环有*。

代码语言:javascript
运行
AI代码解释
复制
[00* 01* 02* 03*
 10* 11  12  13*
 20* 21  22  23*
 30* 31* 32* 33*]

现在,要旋转行和列,可以移动行的每个元素和相应的列。例如,首先在临时变量中取00。移动30代替00。移动33而不是30。移动03代替33,最后将临时分配给03。同样地,移动其他的。

现在,可以通过在0到小于len/2之间设置一个外部计数器来实现上述方法,这在解决方案中被称为层。内部计数器将介于层与层之间。很简单!

但是,我很难用粗体对这个部分进行编码。即编写下面对所有索引都有效。

代码语言:javascript
运行
AI代码解释
复制
// save top
// left -> top
// bottom -> left
// right -> bottom
// top -> right

例如,[]之间的事情:给了这个问题一个突破,但是在这些动态指标中的任何一个都不断地出错。我通常在嵌套/正常循环中感到舒服。

代码语言:javascript
运行
AI代码解释
复制
matrix[first][i] = matrix[last-offset][first];
matrix[last-offset][first] = matrix[last][last - offset];
matrix[last][last - offset] = matrix[i][last];
matrix[i][last] = top;

我知道需要做什么,但不能编写动态索引的逻辑。如对此有任何帮助,将不胜感激。解决办法是有的,但这个问题更多的是一个有益的建议。当你被困在这里时,你做了什么?

作者已经解释了上述答案,但在解释了方法之后,她也跳过了已经写好的程序。

https://www.youtube.com/watch?v=aClxtDcdpsQ

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2016-10-08 23:16:16

当你被困在这里时,你做了什么?

使用铅笔和纸,并画一些图片,以帮助可视化问题。

如果您有一个带有调试器的IDE (如果没有,原因是什么?)然后使用调试器“单步”通过问题可能也有帮助。

最终,这归结为为代码的工作方式建立了一个精确的心智模型。这不是别人能教你做的事。你只需要练习,直到你掌握了它的诀窍。先从更简单的问题/程序开始,然后再转到更复杂的问题。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/333198

复制
相关文章
html中ul和li的使用_ul列表的html结构
1. 序号可以是数字、字母、罗马数字等,可以通过list-style-type 属性设置。
全栈程序员站长
2022/09/19
3.7K0
html中ul和li的使用_ul列表的html结构
jQuery创建json对象
JSON创建json对象: <!DOCTYPE html> <html>     <head>         <meta charset="utf-8">         <title>创建json对象方法一</title>     </head>     <body>         <ul>             <li>姓名:<span class="name"></span></li>             <li>年龄:<span class="age"></span></li>     
凯哥Java
2022/12/16
2.1K0
jQuery创建json对象
用值填充JavaScript数组的几种方法
通过将点扩展符与数组实例的 keys 方法结合使用,我们可以从0开始以升序数填充数组。
张张
2020/04/21
2.6K0
用值填充JavaScript数组的几种方法
使用json 和jQuery制作级联dropdownlist
联动式的下拉选择是一个很普遍的需求,在ASP.NET MVC中可以使用Json和jQuery来实现,更简单的是使用jQuery的级联插件CascadingDropDown ,具体参见文章http://weblogs.asp.net/rajbk/archive/2010/05/20/cascadingdropdown-jquery-plugin-for-asp-net-mvc.aspx。 1: $(targetID).CascadingDropDown(sourceID, actionPath, set
张善友
2018/01/19
9200
jquery + json 动态创建复杂表格table
function SetSubTable() { var obj = jQuery.parseJSON($("#SubJsonStrValue").val()); window.ALLPARAMTERS = obj; var row_str = ""; var span_num = 1 for (var i = 0; i < obj.length; i++) { if (obj[i].ParamN
liulun
2022/05/09
2.1K0
jQuery 和 json 简单例子(注意callback函数的处理!!) (servlet返回json,jquery更新,java json)
这个例子是后台获取某个目录的所有文件信息,前台网页显示。 代码文件:     http://files.cnblogs.com/kenkofox/jsonTest.html%E5%92%8COnlineFileManagerServlet.rar JSON包(java文件):http://files.cnblogs.com/kenkofox/org.json.rar Servlet: protected void processRequest(HttpServletRequest request,
用户1258909
2018/07/03
8600
dataframe填充缺失值_pandas填充空值
将其Nan全部填充为0,这时再打印的话会发现根本未填充,这是因为没有加上参数inplace参数。
全栈程序员站长
2022/09/22
2.8K0
JS和JQuery获取label的值
label <label name="label_blog" id="label_blog" value="http://blog.ithomer.net"> http://blog.ithomer.net </label> </br> <input name="input_blog" id="input_blog" value="http://blog.ithomer.net"> </input> label 获取值: label标签在JS和Jquery中使用不能像其他标签一样用value获取它
阳光岛主
2019/02/18
9.3K0
jQuery获取checkbox和radio的值
一般获取 input 的值,直接使用 $('input').val() 就可以了。
德顺
2023/08/25
3470
jquery.json插件的方便使用
toJSON: 序列化的JavaScript对象,数字,字符串或数组转换为JSON对象(json转字符串) evalJSON: 转换从JSON为Javascript对象(字符串转对象) secureEvalJSON: Converts from JSON to Javascript, but does so while checking to see if the source is actually JSON, and not with other Javascript statements thrown in. quoteString: Places quotes around a string, and intelligently escapes any quote, backslash, or control characters. quoteString:放置引号的字符串,并智能地转义任何引号,反斜线,或控制字符。 secureEvalJSON:转换从JSON为Javascript,但这样做同时检查,看看源实际上是JSON,而不是与其他的JavaScript语句抛出英寸
李维亮
2021/07/09
1.1K0
Jquery通过JSON和Struts的Action交互
前面写过 《JQuery通过JSON和Servlet进行交互》 ,不过在SSH架构的项目中要是依然在写出一个Servle实在是有点另类的(至少我目前是这么认为的),因此就应该顺势而行,使用Jquery通过JSON和后台Action交互。 具体实现起来和前面的那篇文章差不太多。简明扼要的说一下: 首先配置好struts2的配置文件,定义一个Action名为test,对应的Class为TestAction:
the5fire
2019/02/28
7080
Jquery和PHP Ajax JSON
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
1.5K0
使用scikit-learn填充缺失值
在真实世界中的数据,难免会有缺失值的情况出现,可能是收集资料时没有收集到对应的信息,也可能是整理的时候误删除导致。对于包含缺失值的数据,有两大类处理思路
生信修炼手册
2021/02/09
2.9K0
asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
首先贴上Jquery的ajax: $.ajax({ url: 'ws_Ajax.asmx/BindDictByUpper', type: 'POST', contentType: 'application/json;charset=utf-8', dataType: 'json', data: '{ PpareId:"' + varlue
hbbliyong
2018/03/05
3.9K0
JavaEE 使用 JQuery 完成 ajax & json 数据的传输
JSONobj 需要的同学,需要 mysql 驱动的,我已经上传至 Github,里面也整理了一些我学习会常用到的 jar包 Jar 包下载链接
Gorit
2021/12/08
1.6K0
JavaEE 使用 JQuery 完成 ajax & json 数据的传输
涉及的键和值的类型都是interface
与原生的字典相同,并发安全字典对键的类型也是有要求的。它们同样不能是函数类型、字典类型和切片类型。另外,由于并发安全字典提供的方法涉及的键和值的类型都是interface{},遴选真题所以我们在调用这些方法的时候,往往还需要对键和值的实际类型进行检查。这里大致有两个方案。我们今天主要提到了第一种方案,这是在编码时就完全确定键和值的类型,然后利用 Go 语言的编译器帮我们做检查。
用户7737280
2021/11/27
7380
Jquery 使用getJSON 获取json数据
1.先引用jq获取下载到本地 CDN地址:https://code.jquery.com/jquery-latest.js
Alone88
2019/10/22
3.6K0
一个简单的Ajax功能(用到Jquery与Json)
效果图: 提示:上面的java学习和许肖飞不是写死的而是从服务器中获取的 1、在index.jsp页面载入jquery-1.8.3.js(放在WebRoot目录下的js文件夹里面) 并且在WebR
Java学习
2018/04/18
1.1K0
一个简单的Ajax功能(用到Jquery与Json)
pandas处理缺失值的函数_pandas填充缺失值
df.dropna()函数用于删除dataframe数据中的缺失数据,即 删除NaN数据.
全栈程序员站长
2022/09/30
2K0
使用jQuery来创建Silverlight
使用jQuery来创建Silverlight jQuery已经成为了VS2010内置支持的JavaScript脚本框架了,小巧实用。这里看看怎么用jQuery来在页面中创建一个Silverlight。( 呵呵,有一种swfobject的感觉了 ) jquery.silverlight.js jQuery.fn.extend({     silverlight: function(opts) {         _opts = jQuery.extend({             background
用户1172164
2018/03/01
9670

相似问题

Python APscheduler并返回目录中最新csv的文件路径

10

返回python中的CSV文件

22

从python子目录提取csv文件。

24

Python -连接特定目录中的CSV文件

21

Python:下载CSV文件,检查返回码?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档