8.28 小红书笔试

排队

  • 定义包含id和important的结构体
  • lambda表达式自定义排序规则
  • 排序后顺序查找

法术

  • 对所有法术威力powers[]排序
  • 双指针 i=0 ,j=n-1
    while (i < j) {
          if (nums[i] * nums[j] >= K) {
              ans += (j - i) * 2;
              --j;
          }
          else {
              ++i;
          }
      }
  • 注意用数据范围,不用long long只能过82 %

一对一

  • vector<pair<int, int> > lines(n-1) 保存 n-1 条连线
  • vector<bool> staff(n) 保存员工是否已配对</bool>
  • 对n-1条连线dfs,如果lines[idx]两头的员工还未配对,则 curpair++,并将连线两头的员工标记为已配对。继续搜索后面的lines
  • 利用curpair加未搜索lines数量与maxpairs大小关系剪枝

第三题方法感觉复杂度太高但能过100%,有无懂哥讲下好的思路

#小红书笔试#
全部评论
据说第三道题直接sout 2就a了
点赞 回复 分享
发布于 2022-08-28 18:01 浙江
第三题并查集
点赞 回复 分享
发布于 2022-08-28 18:03 陕西
第二题加了long long也还是82%,我甚至用除法后用二分法去找值,也没改进效率
点赞 回复 分享
发布于 2022-08-28 18:14 广东
可以给下第三题的代码呢
点赞 回复 分享
发布于 2022-08-28 18:54 广东

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务