123
返回列表 发新帖
楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

非死不可 根本不想给过电面

🔗
Nibiru 2021-5-20 07:18:08 | 只看该作者
全局:
这个题可以用heap吧?跟第k大/小不是一样的题吗?
回复

使用道具 举报

🔗
madrid 2021-6-6 07:35:17 | 只看该作者
全局:
本帖最后由 madrid 于 2021-6-6 07:49 编辑

替楼主惋惜。祝拿到大offer。
我也是follow楼主的思路,写了以下的代码供大家参
  1.     public int kth(int n, int k) {
  2.         k += 1;
  3.         int numOfBitOne = 0;
  4.         while (numOfBitOne <= n) {
  5.             int cnt = nCr(n, numOfBitOne);
  6.             if (k <= cnt) break;
  7.             k -= cnt;
  8.             ++numOfBitOne;
  9.         }
  10.         int num = 0;
  11.         while (n > 0) {
  12.             // Number of corresponding numbers which have numberOfBitOne 1s when most significant bit is set to 0
  13.             int msb0 = (n - 1 >= numOfBitOne) ? nCr(n - 1, numOfBitOne) : 0;
  14.             if (k <= msb0)
  15.                 num = num * 2;
  16.             else {
  17.                 k -= msb0;
  18.                 num = num * 2 + 1;
  19.                 --numOfBitOne;
  20.             }
  21.             --n;
  22.         }
  23.         return num;
  24.     }

  25.     private int nCr(int n, int r) {
  26.         return factorial(n) / factorial(r) / factorial(n - r);
  27.     }
  28.    
  29.     // We can use a HashMap to store the n -> n! to avoid duplicate calculations.
  30.     private int factorial(int n) {
  31.         if (n == 0 || n == 1) return 1;
  32.         return n * factorial(n - 1);
  33.     }
复制代码



Test code:
  1.     public static void main(String[] args) {
  2.         KthNumberOf1s o = new KthNumberOf1s();
  3.         System.out.println(o.kth(3, 4) == 3);
  4.         System.out.println(o.kth(4, 5) == 3);
  5.         System.out.println(o.kth(4, 6) == 5);
  6.         System.out.println(o.kth(4, 7) == 6);
  7.         System.out.println(o.kth(4, 8) == 9);
  8.     }
复制代码





回复

使用道具 举报

全局:
哈哈楼主我也是这样的,遇到的三哥都是过程问啥啥不说,然后aggresive 挑毛病。昂赛遇到三哥也是必hard或没见过的难题。国人都是死命帮你
回复

使用道具 举报

🔗
foxinsocks 2021-7-23 08:34:35 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

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

本版积分规则

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