程序员老鬼

第一次遇到这么恶心的事,背调被之前的公司说坏话,还撒谎恶意诋毁,背调人员把通话录音给了我,有录音证据。可以起诉要求前公司赔偿吗?

最近刷到一个帖子,挺上头的:网友吐槽自己跳槽,背景调查的时候,前公司直接开黑模式,背调时造谣抹黑,连点真话都没有,纯纯造谣。更离谱的是,背调人员把通话录音给了他,真·实锤在手。这哥们就发问了:“这种情况,我能不能起诉前公司,要求赔偿?”

Image

我一看这问题,第一反应:程序员的职场,还得靠法务来保驾护航。说实话,换工作是常态,但被前公司这么整,真是头一回听说这么离谱。背调背成《甄嬛传》,明明离职和平,结果背后捅刀子,属实有点过分。

有网友说了:“有录音证据,直接怼回去,法庭见!”也有懂法的小伙伴提醒:“先咨询律师,录音是否合法采集,搞不好自己录的都不一定能用。”

我觉得,这年头,咱打工人换工作已经够难的了,遇上这种恶意抹黑,真得学会用法律武器保护自己。至于能不能赔偿,别急,先找专业律师问问,别让自己吃哑巴亏。职场嘛,刀光剑影,咱还是得长点心眼儿。【备注:文末可领最新资料】

算法题:最小好进制

局长 

不得不说,程序员的快乐真的很简单,刷题的时候写出一行漂亮的代码,运行通过,心情就跟喝了冰可乐一样爽。

最近碰到一道有点意思的题,名字也挺唬人,叫“最小好进制”。这题一听好像跟“好嗨哟”有什么关系,其实它讲的是一个数在不同进制下的表现形式,找到它最小的那个“好进制”。

题目大概是这样的:给你一个正整数n,把它写成k进制下全是1的形式,比如 13 在 3 进制下是111,问你这个最小的 k 是多少?

第一次看到这题,我就想起小时候背九九乘法表,感觉脑袋有点麻。不过一看数据范围:n 最大可以到 (10^18),这时候你要还想着暴力枚举k,那可能得先去预订个养老院。

咱们还是得靠点算法支撑场面。这个题的本质其实是让你把 n 写成形如 (1 + k + k^2 + ... + k^m) 这样的等比数列求和式,也就是说:

Image

这个式子要成立,关键就是找到合适的 k 和 m。这里 m 是可以确定的,最大也就 (log2n),因为二进制是最小的底数。

既然m是可控的,那就试着去枚举 m,k用二分去找。这里顺带提一句,二分真的好用,和 for 循环、if else 并称我最爱的三大件。

上代码:

public String smallestGoodBase(String n) {
longnum= Long.parseLong(n);
// 最大的m次方,最小是2进制
for (intm= (int)(Math.log(num) / Math.log(2)); m >= 1; m--) {
longleft=2, right = (long)Math.pow(num, 1.0 / m) + 1;
while (left <= right) {
longk= left + (right - left) / 2;
longsum=0, curr = 1;
for (inti=0; i <= m; i++) {
                sum += curr;
if (sum > num) break;  // 溢出了
                curr *= k;
            }
if (sum == num) {
return String.valueOf(k);
            } elseif (sum < num) {
                left = k + 1;
            } else {
                right = k - 1;
            }
        }
    }
return String.valueOf(num - 1);  // 最坏的情况,n = 1 + (n-1)
}

这个解法,时间复杂度大概是 O(log2n),对10^18 这种数据绰绰有余。

写这题的时候我也想了,为什么我们程序员这么喜欢二分法?可能就跟泡杯咖啡喜欢多加点糖一样,二分法总是能在复杂的世界里帮我们划开一条简洁的路,效率高,思路清晰,真是刷题人的法宝🔧。

不过写完之后,我突然想起来,这道题让我想起大学学离散数学的日子。那时候老师在讲数列求和公式,我一脸懵逼地在想:“这些到底有啥用?”现在好了,工作了,还得靠这些知识吃饭。所以啊,学习的东西真的别问有没有用,问就是早晚要用!

再提一句,Java 处理大数真的挺方便,long 顶天,BigInteger 顶到底。写这种题的时候,long 就很够用了,溢出的问题咱们二分法+判断一把梭就完事。

总之,算法题刷起来不光是为了面试,更多的时候是对自己脑袋的一种训练。毕竟,程序员嘛,敲的代码里藏着自己的心态,写的算法里藏着自己的修养。

刷题路漫漫,希望咱们都能一直保持点热情,毕竟,生活已经够苦了,写点好看的代码,总得让自己乐呵乐呵不是?

最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek

也可以看我写的这篇文章《DeepSeek满血复活,直接起飞!》来进行本地搭建。

-END-

ok,今天先说到这,老规矩,给大家分享一份不错的副业资料,感兴趣的同学可以链接我,微信:hls404 找我领取。

以上,就是今天的分享了,看完文章记得右下角点赞,也欢迎在评论区写下你的留言。