由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问个面试题
相关主题
顺时针打印MxN矩阵的简洁递归解法matrix question
AMAZON PHONE SCREEN 1 基本死掉。amazon的那道题目
一道面试题,求解Interview questions, Bloomberg
求顺时针打印矩阵code一个容易记忆的permutation算法
电面题一个好记(但不是最优)的combination算法
MS interview questionone C++ question
一道 A9.com Search Team 的面经难题C++ object size一问
leetcode wordsearch的时间复杂度?One C++ question
相关话题的讨论汇总
话题: colsize话题: y0话题: x0话题: int话题: cout
进入JobHunting版参与讨论
1 (共1页)
a*******8
发帖数: 110
1
Write a function
void printSquare(int n)
{
}
n = 1, print out
1
n = 2, print out
1 2
4 3
n = 3
1 2 3
8 9 4
7 6 5
n = 4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
s*****y
发帖数: 897
2
somebody already ask this question in recent one day.
Search ihas1337code post...

【在 a*******8 的大作中提到】
: Write a function
: void printSquare(int n)
: {
: }
: n = 1, print out
: 1
: n = 2, print out
: 1 2
: 4 3
: n = 3

j*****4
发帖数: 292
3
recursion

【在 a*******8 的大作中提到】
: Write a function
: void printSquare(int n)
: {
: }
: n = 1, print out
: 1
: n = 2, print out
: 1 2
: 4 3
: n = 3

b*****n
发帖数: 482
4
定义一个n*n的数组,再把1-n填入数组中,最后打印。
数组初始化为零,每填完一个数k,根据当前的row,col和direction计算下一个数(k+1
)所对应的
row, col和direction(direction是指下一个坐标是往左,下,右,还是往上)。如果
保持当前方
向,而下一个位置为非零(表明已经填过了),或者越界,则转向。
if you need code, let me know.

【在 a*******8 的大作中提到】
: Write a function
: void printSquare(int n)
: {
: }
: n = 1, print out
: 1
: n = 2, print out
: 1 2
: 4 3
: n = 3

P********l
发帖数: 452
5
填两维数组吧。
觉得正确,清楚才是王道。
f****4
发帖数: 1359
6
void printspiral(char *a, int colsize, int m, int n, int x0, int y0)
{
// a is the matrix, colsize is its original column size
// m is #rows, n is #cols in the submatrix
// x0 and y0 are the offsets of the first element of the submatrix
// check if m and n are positive
if (m<=0 || n<=0) {
cout << "zero or negative dimensions" << endl;
return;
}
int i;
if(m>=2&&n>=2) {
// print the outer circle
for(i=0; i<=n-2; i++)
cout << a[x0*colsize+y0+i] << ',';
for(i=0; i<=m-2; i++)
cout << a[(x0+i)*colsize+y0+n-1] << ',';
for(i=n-1; i>=1; i--)
cout << a[(x0+m-1)*colsize+y0+i] << ',';
for(i=m-1; i>=1; i--)
cout << a[(x0+i)*colsize+y0] << ',';
cout << endl;
}
else{
if (m==1&&n==1)
cout< else
if(m==1)
for(i=0;i cout< else
for(i=0;i cout< }
// print the inner matrix using recursion
if(m>2 && n>2)
printspiral(a, colsize, m-2, n-2, x0+1, y0+1);
}
void spiral(char* arr,int rowSize,int colSize)
{
if(colSize<=0||rowSize<=0){
cout<<"invalid input"< return;
}
int m=rowSize,n=colSize,x0=0,y0=0,i;
while(m>=1&&n>=1){

if(m>=2&&n>=2){
for(i=0; i<=n-2; i++)
cout << arr[x0*colSize+y0+i] << ',';
for(i=0; i<=m-2; i++)
cout << arr[(x0+i)*colSize+y0+n-1] << ',';
for(i=n-1; i>=1; i--)
cout << arr[(x0+m-1)*colSize+y0+i] << ',';
for(i=m-1; i>=1; i--)
cout << arr[(x0+i)*colSize+y0] << ',';
cout << endl;
}
else{
if (m==1&&n==1)
cout< else
if(m==1)
for(i=0;i cout< else
for(i=0;i cout< }
m-=2; n-=2; x0+=1; y0+=1;
}
}
o****d
发帖数: 2835
7
C程序
思路如上面的朋友所说
=======
#include
#include
void setMatrix (int ** matrix, int x, int y, int n, int start)
{
int i,j;
if(n==0)return;
else if(n==1) matrix[x][y]=start;
else{
for(j=y;j matrix[x][j]=start++;
for(i=x;i matrix[i][y+n-1]=start++;
for(j=y+n-1;j>y;j--)
matrix[x+n-1][j]=start++;
for(i=x+n-1;i>x;i--)
matrix[i][y]=start++;
setMatrix(matrix,x+1,y+1,n-2,start);
}
}
int main()
{
int i,j;
int **matrix;
int N;
printf("Please input size: ");
scanf("%d", &N);
matrix=(int **)malloc(N*sizeof(int *));
for(i=0;i matrix[i]=(int *)malloc(N*sizeof(int));
setMatrix(matrix,0,0,N,1);
for(i=0;i {
for(j=0;j printf("%4d ", matrix[i][j]);
printf("\n");
}
return 0;
}

+1

【在 b*****n 的大作中提到】
: 定义一个n*n的数组,再把1-n填入数组中,最后打印。
: 数组初始化为零,每填完一个数k,根据当前的row,col和direction计算下一个数(k+1
: )所对应的
: row, col和direction(direction是指下一个坐标是往左,下,右,还是往上)。如果
: 保持当前方
: 向,而下一个位置为非零(表明已经填过了),或者越界,则转向。
: if you need code, let me know.

1 (共1页)
进入JobHunting版参与讨论
相关主题
One C++ question电面题一个
one C++ questionMS interview question
发个题目给大家复习一下marco一道 A9.com Search Team 的面经难题
Why I can't compile this function successfullyleetcode wordsearch的时间复杂度?
顺时针打印MxN矩阵的简洁递归解法matrix question
AMAZON PHONE SCREEN 1 基本死掉。amazon的那道题目
一道面试题,求解Interview questions, Bloomberg
求顺时针打印矩阵code一个容易记忆的permutation算法
相关话题的讨论汇总
话题: colsize话题: y0话题: x0话题: int话题: cout