题解 | #农场牛的标识II#
农场牛的标识II
https://www.nowcoder.com/practice/a69dc54eeffa43218d06f62cc733c6c0
题目考察的知识点是:
本题考察的知识是位运算。
题目解答方法的文字分析:
我们可以利用位运算的思想来解决这个问题。假设每个标识的二进制表示共有32位(int类型的特点),对于每一位的1的个数,如果出现了3次,那么对3取余后应该为0,而对于只出现一次的牛,剩余的余数就是1。
本题解析所用的编程语言:
java语言。
完整且正确的编程代码:
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型 */ public int singleNumberII (int[] nums) { // write code here int ones = 0, twos = 0; for (int num : nums) { ones = (ones ^ num) & ~twos; twos = (twos ^ num) & ~ones; } return ones; } }#题解#