问一个关于二维数组排列总数的有关问题
问一个关于二维数组排列总数的问题一个面试题是这样的:int data[3][3] { 0, 1, 2,3, 4, 5,6, 7, 8 }只
问一个关于二维数组排列总数的问题
一个面试题是这样的:
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为偶数两种, 从一类排列不会移动出另一类排列