题目描述
我一开始没弄明白为什么是!col[i] && !dg[u + i] && !udg[n - u + i],后来通过笨办法,把for循环一行一行输出看,明白了。
第u行,第i列
u=0,i=0, dg[0], udg[n]
u=0,i=1, dg[1], udg[n+1]
u=0,i=2, dg[2], udg[n+2]
u=0,i=3, dg[3], udg[n+3]
……
u=0,i=n-1,dg[n-1],udg[2n-1]
u=1,i=0, dg[1], udg[n-1]
u=1,i=1, dg[2], udg[n]
u=1,i=2, dg[3], udg[n+1]
u=1,i=3, dg[4], udg[n+2]
……
u=1,i=n-1,dg[n], udg[2n-2]
……
// dg[u + i] && !udg[n - u + i]
u=n-1,i=0,dg[n-1],udg[1]
u=n-1,i=1,dg[n], udg[2]
u=n-1,i=2,dg[n+1],udg[3]
u=n-1,i=3,dg[n+2],udg[4]
……
u=n-1,i=n-1,dg[2n-2],udg[n]
可知,dg[0]有坐标(0,0)
dg[1]有坐标(0,1), (1,0)
dg[2]有坐标(0,2), (1,1), (2,0)
……
dg数组是右上到左下的对角线。
udg[2n-1]有坐标(0,n-1)
udg[2n-2]有坐标(0,n-2), (1,n-1)
……
udg数组是左上到右下的对角线。