区块链技术博客
www.b2bchain.cn

循环外的临时数组的空间复杂度 – java程序员分享

本文介绍了循环外的临时数组的空间复杂度 – java程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我确实遇到了一个著名的面试问题,其中给了我们2D数组,我们需要将数组旋转90度,尽管有很多方法可以解决它,但我决定采用一种有效的方法这样的事情。

/*  * clockwise rotate  * first reverse up to down, then swap the symmetry   * 1 2 3     7 8 9     7 4 1  * 4 5 6  => 4 5 6  => 8 5 2  * 7 8 9     1 2 3     9 6 3 */ 

My code for above approach is:

public void rotate(int[][] matrix) {     int s = 0, e = matrix.length - 1;     while(s < e){         int[] temp = matrix[s];         matrix[s] = matrix[e];         matrix[e] = temp;         s++; e--;     }      for(int i = 0; i < matrix.length; i++){         for(int j = i+1; j < matrix[i].length; j++){             int temp = matrix[i][j];             matrix[i][j] = matrix[j][i];             matrix[j][i] = temp;         }     } } 

我在这里主要担心的是,我在第一个while循环内使用的数组可能会使空间复杂度O(n)。如果我只是这样做:

int[] temp; while( s < e ){    temp = matrix[s]; } 

现在是空间复杂度O(1)还是保持不变?

java大神给出的解决方案

您要旋转的矩阵之外的唯一空间是单个元素和一个指向行的指针,每个指针都是O(1)。指针指向O(N)空间的某些内容无关紧要,因为它是输入的一部分。

请注意,您可以进行大约1/2倍的旋转:您无需旋转两种方式来反射整个矩阵,而是将每个元素移动两次,而是可以旋转每组4个元素,其中A替换B,B替换C,C替换D ,D代替A。

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

我有点好奇,有没有办法修改hibernate的核心,以便我可以自定义生成的SQL query。例如,在生成的查询中添加功能以使用connect by prior(oracle)或我要自定义的任何其他子句。 java大神给出的解决方案 起初,这样的问题总是在我心中敲响警钟。你被警告了…AFAIK,hibernate使用所谓的dialects进行特定的优化。…

Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。 3年前关闭。 Improve this question 我正在尝试使用Java构建ETL工具。 ETL工具用于对大量数据(关系型和其他类型)进行批量读取,…

private中的Java提供类级别的封装。可以封装一个对象吗?还是这样做徒劳?例如,如果我们将一个类定义为 public class Person { private String ssn; private ArrayList<Person> friends = new ArrayList<Person>(); public voi…

Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以使为on-topic。 5年前关闭。 Improve this question 我正在寻找一个项目:1)包括测试在内的可用资源。2)已/已严格使用TDD开发。3)用Java和JUnit…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 循环外的临时数组的空间复杂度 – java程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们