Leetcode 3513. Number of Unique XOR Triplets I

1. 解题思路

这一题其实算是一个脑筋急转弯的题目,我们稍微经过一些数学分析即可发现,由于给到的数恰好为 1 1 1 n n n,因此假设 n n n的二进制位一共有 m m m位,则对于任意小于 2 m 2^m 2m的数 k k k,我们总能找到3个数 x , y , z x,y,z x,y,z,使之满足x^y^z=k

这里仅存在两个特殊情况,即 n < 3 n < 3 n<3的情况,此时必然有一到两个数会被多次选用,因此答案会出现一些偏差。

2. 代码实现

给出python代码实现如下:

class Solution:
    def uniqueXorTriplets(self, nums: List[int]) -> int:
        n = len(nums)
        if n <= 2:
            return n
        
        return 2**(len(bin(n)[2:]))

提交代码评测得到:耗时0ms,占用内存30.3MB。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值