程序员老鬼

为什么大厂研发的老婆都是美女~

刚刷到个贴子,说大厂程序员的老婆怎么都是美女,还一副老实人的样子🤔

Image

程序员虽然话少,但人设稳啊——稳定工作、收入尚可、圈子干净,这些在婚恋市场上就是妥妥的“性价比战神”。别看嘴笨,人家是靠行动刷信任度。网友有说靠运气、靠运势的,我倒觉得,更可能是靠谱值拉满。

再说了,大厂拼的不只是技术,还有软实力,情绪稳定、抗压能力强,不爱搞事,女生不就是想找个踏实过日子的伴侣吗?从我的角度看,这种“内敛靠谱型”,确实是很多女生理想型。

不过话说回来,也不是说程序员都能抱得美人归,关键还是看人品和心态。外貌是加分项,真诚才是底牌。【备注:文末可领最新资料】

算法题:扫地机器人

扫地机器人这个题吧,虽然网上一堆解法,但真要写得通俗点,说实话还挺考验基本功的。

你想啊,场景差不多就是家里乱七八糟,地上有障碍、有灰尘,扫地机器人要自己“想办法”把每个地方都走一遍,而且别重复,碰见墙什么的得会转弯。你们见过那种家用的米家、小米那些机器人吧?它里面用的那种遍历,其实挺像迷宫问题。

早上我冲咖啡的时候还在想,万一机器人卡在沙发底下咋整?核心其实就一句话:“不能重复走老路”。所以算法思路就是:深度优先遍历,把所有能走到的格子都打扫一遍,每到一个新地方就做下清理,然后标记走过了。回头路咋办?用递归往回退。Java 代码写着也不难,稍微封装下就成。

你看下面这段代码,别嫌我啰嗦,我这是真在用手指头抠出来的:

classSolution{
publicvoidcleanRoom(Robot robot){
        Set<String> visited = new HashSet<>();
        dfs(robot, 0, 0, 0, visited);
    }

// direction: 0上,1右,2下,3左
int[][] dirs = {{-1,0}, {0,1}, {1,0}, {0,-1}};

privatevoiddfs(Robot robot, int x, int y, int dir, Set<String> visited){
        String pos = x + "," + y;
if (visited.contains(pos)) return;
        visited.add(pos);
        robot.clean(); // 打扫当前

for (int i = 0; i < 4; i++) {
int nextDir = (dir + i) % 4;
int nx = x + dirs[nextDir][0];
int ny = y + dirs[nextDir][1];
if (!visited.contains(nx + "," + ny) && robot.move()) {
                dfs(robot, nx, ny, nextDir, visited);
// 回到原地,回溯
                robot.turnLeft(); robot.turnLeft();
                robot.move();
                robot.turnLeft(); robot.turnLeft();
            }
            robot.turnRight(); // 顺时针换方向
        }
    }
}

你注意这个robot.move(),它其实是机器人前进一步,不能走就原地不动。然后那个turnLeft、turnRight全是原地转圈圈,有点像小孩在家里迷路了,拿着扫帚一直转。哈,有点逗。

我们组小李上次问我,说为什么要用 set 存 visited 位置,不直接二维数组标记?唉你们想想,现实场景里机器人不知道整个地图大小,纯靠探路,二维数组搞不了。set 存下字符串 key,就灵活多了,横竖都行,反正能标记就成。

还有就是回溯那个操作,现实里其实就机器人倒车+掉头,代码里就是 turn 两次 + move,别被绕晕。我真的是调了半天才不犯糊涂。之前有一回我还写反了,扫地机器人就原地画圆圈,笑死了。

要注意有些坑,比如墙角那种地方机器人得转好几圈才出去,万一忘了visited判重,机器人能把你家瓷砖磨穿。代码要记得四个方向都试一下,每次换方向都要转一下,别偷懒。

总之,思路简单说就是:遇到新地方打扫,能走就继续,不能走就换方向,所有走过的记一下,最终保证每个能走到的都打扫一遍。现实家里你可以试试拿吸尘器模拟,和写代码一毛一样,哈哈。

-END-

我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html

最后给大家分享一份不错的副业资料,点击下方公众号,回复关键字: 副业 领取,也可以链接我领取,微信:hls404