原地矩阵转置 微软面试题
摘要:
昨天微软面试遇到的一道题: 题意大约是这样:一个m×n的矩阵保存在一个一维数组里,然后要求空间复杂度不超过O(n)的条件下完成对它的转置,转置结果还是保存在这个数组里。 因为如果没有空间的限制时,转置的复杂度为O(n×m),所以,拿到这题我就本能的想有没有什么巧妙的方法在O(n)的空间下时间也是O(m×n)。想了半天没想出来,只想到了一个O(m×m×n)的算法。 算法思想大致是,每次完成一行的转置,把转置后的一行n个元素放到辅助空间,然后所有元素像后平移把空出来的位置填满,然后前面自然就是n个空位,然后把这n个元素插入。这样m-1次插入后,矩阵 阅读全文
posted @ 2013-04-22 17:30 十指之间 阅读(1984) 评论(0) 推荐(0) 编辑