题解 | #农场牛的标识III#

农场牛的标识III

https://www.nowcoder.com/practice/f8cf74a21aa4440595f007789ea6bd61

  • 题目考察的知识点 : 位运算^
  • 题目解答方法的文字分析:
  1. 对于那些被标记了三次的牛,它们每个标识的二进制表示都有 32 位,而每一位的 1 的个数如果也出现了三次,那么对 3 取余之后应该是 0 。我们还有那个只被标记了两次的牛,这个牛剩下的余数就是 1 啦!
  2. 如果 num 在 ones 中没有出现过,则将 num 的二进制表示中所有出现过的位均更新到 ones 中;
  3. 如果 num 在 ones 中已经出现过,则将 num 的二进制表示中所有出现过的位都更新到 twos 中,并将 ones 中对应的位清零;
  4. 如果 num 在 twos 中已经出现过,则不需要做任何操作。
  • 本题解析所用的编程语言: Python
  • 完整且正确的编程代码
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @return int整型
#
class Solution:
    def twoCountNumber(self , nums: List[int]) -> int:
        ones, twos = 0, 0
        
        for num in nums:
            ones = (ones ^ num) & ~twos
            twos = (twos ^ num) & ~ones
        
        return twos
牛客高频top202题解系列 文章被收录于专栏

记录刷牛客高频202题的解法思路

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 17:23
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务