之前一个题目是一个数字出现一次,其他数字出现两次,利用的是a^b^a=b,且异或满足交换律,结合律,a^a=0,0^x为x。
这个题目变为了两个数字(设为a,b)出现一次。对他进行分组,使得a,在一个分组,b在一个分组,且相同的数在同一个分组。
分组的方法:
异或的二进制数为1时,说明,a,b的二进制这个位置不同。按照这个位置进行分组。
使用动态规划
dp[i]={dp[j] * dp[i-j] , j * dp[i-j] , dp[j] * (i-j), j * (i-j) };
变为二进制,换成位运算
给定几个气球的区间, [start,end],[start,end]...
要求得最少需要多少箭。
使用贪心算法。
按照end排序,下一个start>end,结果++