由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一道careercup 150上的题
相关主题
Amazon algorithm question, google新鲜的L一面
求教矩阵改零的问题 (转载)大意了,尼玛
Print out all elements in a sorted matrixM面经
find kth element in n*n sorted matrixYHOO phone interview
大牛们看看这题:Find Peak Element IIbloomberg面试经历
careerup 150的一道经典题算法--一个MXN matrix (0's and 1's)内求最大 rectangle(1's)
刚才的amazon phone interview 第一轮面试问题请教
问一个老数组题careercup书上一个老题
相关话题的讨论汇总
话题: matrix话题: size话题: elements话题: int话题: 45
进入JobHunting版参与讨论
1 (共1页)
i******e
发帖数: 273
1
关于第一章的N*N矩阵向右旋转90度的题。 怎么也得不到想要的结果,我按照答案修改
了我的程序,可是还是不对。
我得到的结果是:
Original matrix:
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
After rotation:
99 81 72 63 54 45 36 27 18 0
91 88 72 63 54 45 36 27 11 1
92 82 77 63 54 45 36 22 12 2
93 83 73 66 54 45 33 23 13 3
94 84 74 64 55 44 34 24 14 4
95 85 75 65 45 44 35 25 15 5
96 86 76 36 56 46 33 26 16 6
97 87 27 67 57 47 37 22 17 7
98 18 78 68 58 48 38 28 11 8
9 89 79 69 59 49 39 29 19 0
我的实现:
void rotateMatrix(int **matrix, int size)
{
int temp;
for (int i = 0; i < size / 2; ++i) {
for (int j = i; j < size - i; ++j) {
// save the top line elements
temp = matrix[i][j];
// move the leftmost column elements to the top line
matrix[i][j] = matrix[size - j - 1][i];
// move the bottom line elements to the leftmost column
matrix[size - j - 1][i] = matrix[size - i - 1][size - j - 1];
// move the rightmost column elements to the bottom line
- i - 1];
matrix[size - i - 1][size - j - 1] = matrix[j][size - i - 1];
// move the top line elements to the rightmost column
matrix[j][size - i - 1] = temp;
}
}
}
我转了两个小时,已经彻底晕菜了, 请高人给我指点一下我哪里出了问题。 谢谢!
a********m
发帖数: 15480
2
至少你这个只移动了一半的数据吧。

【在 i******e 的大作中提到】
: 关于第一章的N*N矩阵向右旋转90度的题。 怎么也得不到想要的结果,我按照答案修改
: 了我的程序,可是还是不对。
: 我得到的结果是:
: Original matrix:
: 0 1 2 3 4 5 6 7 8 9
: 10 11 12 13 14 15 16 17 18 19
: 20 21 22 23 24 25 26 27 28 29
: 30 31 32 33 34 35 36 37 38 39
: 40 41 42 43 44 45 46 47 48 49
: 50 51 52 53 54 55 56 57 58 59

f*******t
发帖数: 7549
3
for (int j = i; j < size - i - 1; ++j)
z*****n
发帖数: 447
4
另外有个办法是,先做矩阵转置,再把各行reverse,就把矩阵右旋90度了
i******e
发帖数: 273
5
这个方法好, 超赞。
谢谢各位!

【在 z*****n 的大作中提到】
: 另外有个办法是,先做矩阵转置,再把各行reverse,就把矩阵右旋90度了
1 (共1页)
进入JobHunting版参与讨论
相关主题
careercup书上一个老题大牛们看看这题:Find Peak Element II
这两道题(CareerCup 150)的答案是不是有问题啊?careerup 150的一道经典题
抛砖引玉:Careercup 150题中的错误刚才的amazon phone interview 第一轮
请教CareerCup中的ROBOT MATRIX PATH那道题问一个老数组题
Amazon algorithm question, google新鲜的L一面
求教矩阵改零的问题 (转载)大意了,尼玛
Print out all elements in a sorted matrixM面经
find kth element in n*n sorted matrixYHOO phone interview
相关话题的讨论汇总
话题: matrix话题: size话题: elements话题: int话题: 45