OPPO 后端二面,凉凉。。。

03-15 阅读 0评论

美众议院通过 TikTok 法案

之前我们讲了 老美要求字节跳动在 165 天内剥离短视频应用 TikTok,当时的最新进度是 TikTok 给 1.7 亿美国用户发弹窗,发动用户群众给国会打电话进行抗议。

OPPO 后端二面,凉凉。。。,OPPO 后端二面,凉凉。。。,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第1张
(图片来源网络,侵删)

但显然这点力度的抗议并不会造成什么实质影响。

昨晚,美国众议院的议员们正式投票通过了该法案(H.R.7521),之后的流程还需要得到美国参议院的通过,然后才是提交给总统拜登批准。

OPPO 后端二面,凉凉。。。 美国众议院的威斯康星州共和党众议员迈克·加拉格尔(右)是一项针对TikTok法案的主要支持者之一

看似流程还长,但大概率不会出现什么变数,毕竟针对 TikTok 是两党的少数共识。

在正式投票之前,白宫秘书就公开称赞该提案,称拜登政府"希望看到这项法案得以通过,这样它就能被送到总统的办公桌上"。

这事儿如果真的被美国得逞,真的是很坏的示范。

现在比较合理的破局方式,只能是期望当时躲过特朗普狙击的方法能再奏效一次。

OPPO 后端二面,凉凉。。。,OPPO 后端二面,凉凉。。。,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第3张
(图片来源网络,侵删)

希望会有一些线下的抗议活动,动静越大越好,尽量拖延法案通过的日期。

只要法案通过日期延后,再加上法案生效后还有 165 天时间,就有可能避开美国大选,到时如果发生新政交接,或许就能再次获得喘息机会。

...

回归主线。

真心希望 TikTok 不会原地变外企,先不做字节跳动相关题目了。

来看一道 OPPO 二面算法原题。

OPPO 后端二面,凉凉。。。,OPPO 后端二面,凉凉。。。,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,访问,第4张
(图片来源网络,侵删)

蓝厂的花边新闻虽然不多,但一直是低调赚大钱的代表之一。

这次二面出的算法题水平也不错。

相比原题,题面稍有修改,但数据范围和解法完全一致。

题目描述

平台:LeetCode

题号:864

给定一个二维网格 g,其中:

  • '.' 代表一个空房间
  • '#' 代表一堵墙
  • '@' 是起点
  • 小写字母代表钥匙
  • 大写字母代表锁

    我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。

    我们不能在网格外面行走,也无法穿过一堵墙。

    如果途经一个钥匙,我们就把它捡起来,除非我们手里有对应的钥匙,否则无法通过锁。

    假设 k 为 钥匙/锁 的个数,且满足  ,字母表中的前 k 个字母在网格中都有自己对应的一个小写和一个大写字母。

    换言之,每个锁有唯一对应的钥匙,每个钥匙也有唯一对应的锁。另外,代表钥匙和锁的字母互为大小写并按字母顺序排列。

    返回获取所有钥匙所需要的移动的最少次数。

    如果无法获取所有钥匙,返回 -1 。

    示例 1: OPPO 后端二面,凉凉。。。

    输入:g = ["@.a.#","###.#","b.A.B"]

    输出:8

    解释:目标是获得所有钥匙,而不是打开所有锁。

    示例 2: OPPO 后端二面,凉凉。。。

    输入:g = ["@..aA","..B#.","....b"]

    输出:6

    示例 3: OPPO 后端二面,凉凉。。。

    输入: g = ["@Aa"]

    输出: -1

    提示:

    • g[i][j] 只含有  '.', '#',  '@',  'a'-'f' 以及  'A'-'F'
    • 钥匙的数目范围是 
    • 每个钥匙都对应一个不同的字母
    • 每个钥匙正好打开一个对应的锁

      BFS + 状态压缩

      一道常规的 BFS 运用题,只不过需要在 BFS 过程中记录收集到的钥匙状态。

      利用「钥匙数量不超过 ,并按字母顺序排列」,我们可以使用一个 int 类型二进制数 state 来代指当前收集到钥匙情况:

      • 若 state 的二进制中的第 位为 1,代表当前种类编号为 的钥匙 「已被收集」,后续移动若遇到对应的锁则 「能通过」
      • 若 state 的二进制中的第 位为 0,代表当前种类编号为 的钥匙 「未被收集」,后续移动若遇到对应的锁则 「无法通过」

        其中「钥匙种类编号」则按照小写字母先后顺序,从 开始进行划分对应:即字符为 a 的钥匙编号为 0,字符为 b 的钥匙编号为 1,字符为 c 的钥匙编号为 2 ...

        当使用了这样的「状态压缩」技巧后,我们可以很方便通过「位运算」进行 「钥匙检测」 和 「更新钥匙收集状态」:

        • 钥匙检测: (state >> k) & 1,若返回 1 说明第 位为 1,当前持有种类编号为 k 的钥匙
        • 更新钥匙收集状态: state |= 1 {1,0},{-1,0},{0,1},{0,-1}};{1,0}, {-1,0}, {0,1}, {0,-1}};

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]