读书人

问一个关于二维数组排列总数的有关问题

发布时间: 2013-09-15 19:58:13 作者: rapoo

问一个关于二维数组排列总数的问题
一个面试题是这样的:


int data[3][3] = { 0, 1, 2,
3, 4, 5,
6, 7, 8 };

只能移动0左右和上下的位置,构成一个新的二维数组;



问这样的排列有几种?


我对这种题目最是感冒了!这种题目到底要如何去想?
[解决办法]
9!/2
对1~8这8个数字的排列定义一个逆序数R = 大数字排在小数字之前的数对个数
当0左右移动时, R不变; 0上下移动时, R±2.
因此, 所有可能的排列被分成R为奇数和R为偶数两种, 从一类排列不会移动出另一类排列

读书人网 >软件架构设计

热点推荐