RotateImage题目描述:给定一个n×n的二维矩阵矩阵来表示一幅图像。请将图像顺时针旋转90度。您必须就地旋转图像,这意味着您需要直接修改输入的二维矩阵。请不要使用其他矩阵来旋转图像。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:数组遍历首先,寻找模式,找出当前节点应该被替换的位置。你发现的pattern是(x,y)处的数应该放在(y,matrix.length-顺时针旋转90度后的1)-x)这个位置,然后还有一个规则就是旋转90度的时候顺时针,实际上是每4个节点旋转一次,所以具体处理过程如下:从数组的第一位开始遍历,x和y分别是坐标位置,初始为0,count为总数所有节点,最后一个是当前位置的值。用一个大小相同的数组flag来记录每个位置是否被替换过;根据规律得到应该被替换的值Node(nextX,nextY),判断这个节点是否已经被替换:如果已经被替换,则遍历数组寻找下一个未被替换的节点,并初始化x和y为坐标当前节点的值,temp为当前节点值,进行下一步处理;如果没有被替换过,则将当前节点的值替换为last,将之前的值替换为最后一条记录,然后将x和y更新为当前值的坐标,将当前位置更新为true即为Replaced并将计数减一。循环中断的条件是计数为0,即所有节点都处理完了。publicclassLeetCode_048{publicstaticvoidrotate(int[][]matrix){boolean[][]flag=newboolean[matrix.length][matrix.length];intcount=matrix.length*matrix.length;intx=0,y=0,temp,last=matrix[0][0];while(count>0){intnextX=y,nextY=matrix.length-1-x;if(flag[nextX][nextY]){//下一个节点已经替换,寻找下一个未替换的节点for(inti=x;i
