网易首页 > 网易号 > 正文 申请入驻

拼多多员工中696万彩票辞职,曾经的工位成了新打卡地!

0
分享至

刚看到个拼多多的贴子,说有个哥们中了696万,当天就提离职走人了,现在已经有同事开始去他“曾经”的工位打卡拍照,挺魔幻的画风。

网友们的回复我看了看,有人说“我中了我也立刻走”,有人算账说“税后也就那样,还是得上班”,还有人感慨“说明以前过得确实挺苦”。怎么说呢,我觉得这事最真实的一点是:普通打工人对“说走就走”的自由,是真的馋。

但话说回来,696万听着多,摊到一线城市房贷、父母养老、孩子教育上,其实就是一份“底气”,不是无限续杯。真到自己身上,未必能像他这么潇洒提桶,更多人可能会先悄悄还债、存钱,再谋下一步。

至于去工位打卡这事,我反而挺能理解,当个许愿池,给自己打个气也没啥。但别把好运当规划。

面 试 题 :旋转数字

最近刷题的时候,又看到一个名字挺唬人的题——「旋转数字」。刚看到还以为是矩阵旋转,结果一看:啊?只是让你数数字而已,不过细节还挺有意思的。

大概意思是这样:

给你一个正整数 N ,问从 1N 之间,有多少个数满足下面两个条件:

  1. 把这个数“旋转 180 度”以后,还是一个合法的数字

  2. 并且旋转前后,这个数变成了 不一样的数

所谓“旋转 180 度”,其实就是按位看每个数字:

  • 0、1、8:转完还是自己

  • 2 和 5:互相变

  • 6 和 9:互相变

  • 3、4、7:转完就不是数字了,直接非法

比如:

  • 12 → 旋转后变成 51,合法而且变化了,这是好数字

  • 11 → 旋转后还是 11,没变,不算

  • 37 → 里面有 7,转完就废了,直接非法

我们要做的,就是统计有多少个“好数字”。

如果不考虑性能,最直接的思路其实很简单:

1 ~ N 的每个数 x

  1. 按位检查每一位是不是在合法集合 {0,1,2,5,6,8,9}

  2. 至少要出现一位在“会变”的集合 {2,5,6,9}

  3. 两个条件都满足,就计数 +1

用 Java 写一个“检查一个数是否是好数字”的函数,然后暴力从 1 数到 N 就完事。

这种写法在面试里也能过,但如果 N 比较大,检查每个数都拆位、转字符串,性能会稍微差一点。

稍微聪明一点:用 DP 复用前缀结果

这道题有个很好利用的结构: 一个数 x ,可以拆成“前面几位”和“最后一位”。

比如 x = 123

  • 前缀: 12

  • 最后一位: 3

如果我们知道前缀 12 的合法性,再加上最后一位 3 的合法性,就能推导出 123 是不是好数字。

所以可以搞两个数组:

  • valid[i] :数字 i 是否 完全合法 (没有 3、4、7 这些非法的)

  • diff[i] :数字 i 是否 至少包含一位会变化的数字 (2、5、6、9)

状态转移就很自然了:

  • i 拆成 a = i / 10 (前缀), b = i % 10 (最后一位)

  • 如果前缀 a 已经非法了,那 i 也必定非法

  • 否则看最后一位 b

    • valid[i] = false

    • diff[i] = false (整个数直接报废)

    • valid[i] = true

    • diff[i] = true (因为当前这一位就会变)

    • valid[i] = true

    • diff[i] = diff[a] (有没有“会变”的数字,完全取决于前缀)

    • 如果 b 是 0、1、8:

    • 如果 b 是 2、5、6、9:

    • 如果 b 是 3、4、7:

最后再扫一遍 1 ~ N ,统计那些满足:

  • valid[i] == true

  • diff[i] == true

的数字个数,就是答案。

时间复杂度是 O(N) ,每个数只做 O(1) 的运算,比每次转字符串舒服很多。

按照上面的思路,直接上代码:

publicclassRotatedDigits{

// 主函数:返回 1..n 里有多少个“好数字”
publicintrotatedDigits(int n){
// valid[i] 表示 i 这个数是否合法(不包含 3、4、7)
boolean valid = newboolean[n + 1];
// diff[i] 表示 i 是否至少包含一位会变化的数字(2、5、6、9)
boolean diff = newboolean[n + 1];

// 0 本身是合法的(虽然不会参与统计,但方便做前缀)
valid[0] = true;
diff[0] = false;

for (int i = 1; i <= n; i++) {
int a = i / 10; // 前缀
int b = i % 10; // 最后一位

// 如果前缀已经非法了,后面没必要看,直接标记非法
if (!valid[a]) {
valid[i] = false;
diff[i] = false;
continue;
}

if (b == 0 || b == 1 || b == 8) {
// 这一位旋转后不变
valid[i] = true;
// 是否“变过”,继承前缀的结果
diff[i] = diff[a];
} elseif (b == 2 || b == 5 || b == 6 || b == 9) {
// 这一位旋转后会变成别的数
valid[i] = true;
diff[i] = true;
} else {
// 3、4、7 直接非法
valid[i] = false;
diff[i] = false;
}
}

int ans = 0;
for (int i = 1; i <= n; i++) {
if (valid[i] && diff[i]) {
ans++;
}
}
return ans;
}

// 简单测一下
publicstaticvoidmain(String[] args){
RotatedDigits rd = new RotatedDigits;
System.out.println(rd.rotatedDigits(10)); // 输出 4 :2,5,6,9
System.out.println(rd.rotatedDigits(20)); // 可以自己算着对一下
}
}

这个写法的几个点你可以注意一下:

  • 用数组把“前缀的信息”保存下来,后面的数字直接复用

  • 没有用字符串,都是整数除法+取模,效率还不错

  • validdiff 分开,更好理解逻辑:

    • 一个是“是不是合法数字”

    • 一个是“有没有发生变化”

这题其实就是典型的“按位拆解 + 状态复用”的套路,看上去是在玩数字,其实是在练 DP 的味道。 先写出暴力,再顺着“前缀”的思路把状态拆出来,你会发现很多数位题都是一个套路。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
白酒会被90后00后终结吗?这是我见过最简明易懂的答案!

白酒会被90后00后终结吗?这是我见过最简明易懂的答案!

夜深爱杂谈
2026-01-28 18:25:29
60岁以后,退休金能够达到“这个数”,你就已经超过90%的人了!

60岁以后,退休金能够达到“这个数”,你就已经超过90%的人了!

CG说科技
2026-02-14 10:45:41
威廉王子的情人节礼物,送给凯特王妃的11件珍藏珠宝!

威廉王子的情人节礼物,送给凯特王妃的11件珍藏珠宝!

ChicMyGeek
2026-02-14 18:58:16
8.29万起!大众官宣:新车首次降价

8.29万起!大众官宣:新车首次降价

高科技爱好者
2026-02-14 23:02:02
如果比特币被证明由以色列控制,它的币值真的要归零了

如果比特币被证明由以色列控制,它的币值真的要归零了

快乐彼岸
2026-02-06 17:18:11
今年广州花市的新顶流出现了

今年广州花市的新顶流出现了

21世纪经济报道
2026-02-14 12:17:33
中日开战可能性增大,但收场太难,若真动手,中方估计半步都不退

中日开战可能性增大,但收场太难,若真动手,中方估计半步都不退

百态人间
2026-01-03 16:42:15
切尔西挖角热刺超新星!全英超都在争抢,白鹿巷麻烦大了

切尔西挖角热刺超新星!全英超都在争抢,白鹿巷麻烦大了

奶盖熊本熊
2026-02-15 01:52:44
对手脱靶,中国女子冰壶8-7逆境绝杀东道主,拿到循环赛第二

对手脱靶,中国女子冰壶8-7逆境绝杀东道主,拿到循环赛第二

真理是我亲戚
2026-02-14 20:49:01
沙特突发政坛地震!萨勒曼国王连发敕令,萨勒曼深夜换血震惊全球

沙特突发政坛地震!萨勒曼国王连发敕令,萨勒曼深夜换血震惊全球

东极妙严
2026-02-13 14:09:34
异性之间残酷的事实:多数深爱你的人,一旦分开了,大都人间蒸发

异性之间残酷的事实:多数深爱你的人,一旦分开了,大都人间蒸发

木言观
2026-02-06 20:15:14
赫鲁晓夫回忆斯大林临终之际:猜忌身边所有人,却又深陷孤独的痛苦之中

赫鲁晓夫回忆斯大林临终之际:猜忌身边所有人,却又深陷孤独的痛苦之中

史海孤雁
2026-02-13 10:44:08
“谁会买你老公的大头照?”宝妈创业开超市,最终败给了低认知

“谁会买你老公的大头照?”宝妈创业开超市,最终败给了低认知

妍妍教育日记
2026-02-12 18:48:38
西甲本赛季最具争议的被取消进球之一:“这是对越位规则的错误解读”

西甲本赛季最具争议的被取消进球之一:“这是对越位规则的错误解读”

绿茵情报局
2026-02-15 01:14:57
发不出工资了,这3个行业的人要趁早做打算

发不出工资了,这3个行业的人要趁早做打算

复转这些年
2026-01-19 23:12:25
美国华人直言:中国手机扫码支付是最不智能的发明!

美国华人直言:中国手机扫码支付是最不智能的发明!

阿伧说事
2026-01-20 12:53:01
美国前总统老布什之子喊话:我访华150多次,中国根本没有敌意

美国前总统老布什之子喊话:我访华150多次,中国根本没有敌意

扶苏聊历史
2026-02-03 09:31:52
俄罗斯再次承诺重启丰田位于舒沙拉的前工厂

俄罗斯再次承诺重启丰田位于舒沙拉的前工厂

居陋室观天下
2026-02-12 19:35:05
这女的真不讲究

这女的真不讲究

太急张三疯
2026-02-14 19:35:03
输27分+惨遭四杀!曾经联盟的未来门面,真的要解散吗?

输27分+惨遭四杀!曾经联盟的未来门面,真的要解散吗?

体育新角度
2026-02-14 10:54:44
2026-02-15 02:35:00
吃货的分享
吃货的分享
感谢大家的关注
322文章数 9844关注度
往期回顾 全部

科技要闻

字节跳动官宣豆包大模型今日进入2.0阶段

头条要闻

泽连斯基:冲突可以结束 但首先要结束得体面

头条要闻

泽连斯基:冲突可以结束 但首先要结束得体面

体育要闻

最戏剧性的花滑男单,冠军为什么是他?

娱乐要闻

春晚第五次联排路透 明星积极饭撒互动

财经要闻

谁在掌控你的胃?起底百亿"飘香剂"江湖

汽车要闻

星光730新春促销开启 80天销量破2.6万台

态度原创

房产
健康
家居
时尚
军事航空

房产要闻

三亚新机场,又传出新消息!

转头就晕的耳石症,能开车上班吗?

家居要闻

中古雅韵 乐韵伴日常

推广中奖名单-更新至2026年2月3日推广

军事要闻

钓鱼岛、黄岩岛、仁爱礁已充满中国年味

无障碍浏览 进入关怀版