蛇形打印矩阵,时间复杂度O(n)
2013-10-30 20:50
197 查看
如图 输入4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
比如:输入n,则第一行输出1-n,接着转90度,纵向输出,当输入到该列有n个数时转向
function printN($N){ //一行一行的打印 for($j=0;$j<$N;$j++){ //遍历每行的元素 for($i=0;$i<$N;$i++){ //区分对角线以下(右下部分,不包含对角线) if($i+1 +$j+1 > $N + 1){ //奇数行,分不同的方向 if( ($i+$j) % 2 == 1){ $len = $N-$i -1 + $N - $j - 1 ; $sum = $N*$N - $len*($len+1)/2 ; $value = $sum -($N -$len -2 -$j + $len+ 1 ); } else{ $len =$N-$i -1 + $N - $j - 1 ; $sum = $N*$N - $len*($len+1)/2; $value = $sum + ($N -$len - 1 -$j ); } } else{ //偶数行 if(($i+$j) % 2 == 0){ $sum = ($i+$j+1)*($i+$j+1+1)/2; $value = $sum - $j; } else{ $sum = ($i+$j+1)*($i+$j+1-1)/2; $value = $sum + $j + 1; } } echo $value;echo "\t"; } echo "\n"; } }
相关文章推荐
- 环形矩阵,顺时针,边计算边打印,时间复杂度O(n^2)
- 我们可以推测矩阵乘法最优解的时间复杂度么?
- 腾讯2016实习生编程题蛇形矩阵打印
- 杨氏矩阵 中查找一个数字是否存在,时间复杂度小于O(N)
- Array-----59. Spiral Matrix II(蛇形打印矩阵)
- 算法题:蛇形打印矩阵
- 蛇形打印矩阵
- 剑指Offer--020-顺时针打印矩阵(蛇形打印矩阵)
- 20.蛇形矩阵打印
- 算法题1:蛇形打印矩阵
- 利用矩阵求解fibonacci数列 时间复杂度为O(lgn)
- (C#)打印蛇形正方形矩阵
- 打印蛇形矩阵
- rust--打印蛇形矩阵
- 给一个正整数N,打印NxN的蛇形矩阵(二) 之空间复杂度O(1)
- [腾讯]打印蛇形矩阵
- 2. 有一个二维数组.----杨氏矩阵 。数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- 我们可以推测矩阵乘法最优解的时间复杂度么?
- 打印蛇形矩阵
- 杨氏矩阵中查找一个数-时间复杂度小于O(N)