private static void first(int[] arr) { for(int i = 0; i < arr.length; i++) { arr[i] = cal(arr[i]); } int lowBits = arr[arr.length - 1] & 3; for(int i = 0; i < arr.length; i++) { int temp = arr[i] & 3; arr[i] = (arr[i] >>> 2) ^ (lowBits << 30); lowBits = temp; } } private static int cal(int n) { int first = (0x55555555 & n) << 1; int second = (0xAAAAAAAA & n) >>> 1; return first ^ second; }

相关推荐

10-30 16:31
重庆大学 Java
代码飞升_不回私信人...:你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务