查看: 1307| 回复: 1
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 最近在lc上新看到的一道题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
Input: m, n (where m < n)
Output: Give m distinct integers from 1 to n that maximizes the total number of 1-bits in pairwise XORs (explained below).

Total number of bits in all pairwise XORs given an array of integers x:
F(x) = sum( number_of_bits( xor(x[i], x[j]) ) for i = 1 to m, j = (i + 1) to m )
Maximize Total Number of Bits of Pairwise XORs
Example:
if x = [4, 6, 8], let NoB(num) return number of 1 bits in the number.
F(x) = NoB(4 xor 6) + NoB(4 xor 8) + NoB(6 xor 8)
= NoB(2) + NoB(12) + NoB(14)
= 1 + 2 + 3
= 6

有同学分享一下想法么,感激不尽!

上一篇:leetcode 149 --- Max Points on a line
下一篇:House Robber II
🔗
messfish 2017-1-11 02:06:41 | 只看该作者
全局:
首先设定一个变量存结果。
把每个数看成32个bit的值(也就是说换成二进制形式)。
然后对每个bit,记录0的个数和1的个数。
把这两个值相乘之后加到结果里。
最后输出结果。
这么做的时间复杂度是 O(N * 32) = O(N)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表