招行网络科技笔试


48. 旋转图像

在这里插入图片描述

class Solution {
    
    
    public void rotate(int[][] matrix) {
    
    
      int n=matrix.length;
       for(int i=0;i<n;i++){
    
    
          for(int j=i;j<n;j++){
    
    
             int t=matrix[i][j];
             matrix[i][j]=matrix[j][i];
             matrix[j][i]=t;
          }
       }


       for( int i=0;i<n;i++){
    
    
            for(int j=0;j<n/2;j++){
    
    
             int r= matrix[i][j];
             matrix[i][j]=matrix[i][n-j-1];   
            matrix[i][n-j-1]=r;
            }
       } 
    }
}

剑指 Offer 56 - I. 数组中数字出现的次数

在这里插入图片描述

 
   class Solution {
    
    
    public int[] singleNumbers(int[] nums) {
    
    
        int sum=0;
        //得到异或结果,即为不相同两个数的异或结果sum
        for(int num:nums)
            sum^=num;
        //得到sum的二进制的1的最低位
        int flag=(-sum)&sum;
        int result[]=new int[2];
        //分成两个组进行异或,每组异或后的结果就是不相同两个数的其中之一
        for(int num:nums){
    
    
            if((flag&num)==0)
                result[0]^=num;
            else{
    
    
                result[1]^=num;
            }
        }
        return result;
    }
}
 

猜你喜欢

转载自blog.csdn.net/qq_38847154/article/details/108900749