离谱操作,离职后被前公司调查去向...

发布时间:2024-04-29 18:13:14   

一般你从一个公司离职后,不说老死不相往来,也该是日渐疏远。但是一网友在网上发帖称,离职后,前公司竟然调查他们的去向。哦?难道是追夫火葬场?还是秘密监控?又或者是竞业协议?来看看网友们怎么看吧。

一网友也不惯着:“考公了,当地税务局”哈哈,从此翻身把歌唱。

秀儿不止一个:“你就说在殡仪馆上班,负责烧人,问他需要合作不,量大从优”好家伙,谁敢和你合作,从此避你远远的。

还有网友猜测:“方便安排人去新公司门前拍照。”电视剧都不这么演吧。

更有秀儿直接:“已读不回”好好好,两极反转了是吧。

看了一圈,感觉应该是竞业协议。什么是竞业协议,简单来说就是你签了这个后,在职或离职后一段时期内,不能从事于与原公司存在竞争的公司的行为。

这个协议总感觉有点儿离谱啊,离职后还要看你的去向。那么大家怎么看呢?

下面是今日的大厂算法题

现在环境就这样,不管是大厂还是小厂的笔面试题都会考察算法,所以算法是你内卷路上不可或缺的模块。下面是今日算法题,来自LeetCode的第48题:旋转图像,下面是我的算法思路及实现,让我们来看看吧。

算法题目

给定一个 n x n 的二维矩阵,代表一个图像,请将图像顺时针旋转 90 度。

说明:

你必须在原矩阵上操作,不要使用另一个矩阵来旋转图像。

资源分享

?点击领取:最全Python资料合集

算法思路

旋转图像可以通过以下步骤完成:

  1. 转置矩阵:即行变列,列变行。

  2. 反转每一行:将每一行的元素顺序翻转。

这样可以实现矩阵的顺时针旋转。

代码实现
Go语言实现
func rotate(matrix [][]int) {  n := len(matrix)
// Transpose the matrix for i := 0; i < n; i++ { for j := i; j < n; j++ { matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] } }
// Reverse each row for i := 0; i < n; i++ { for j, k := 0, n-1; j < k; j, k = j+1, k-1 { matrix[i][j], matrix[i][k] = matrix[i][k], matrix[i][j] } }}

Java实现

public void rotate(int[][] matrix) {    int n = matrix.length;        // Transpose the matrix    for (int i = 0; i < n; i++) {        for (int j = i; j < n; j++) {            int temp = matrix[i][j];            matrix[i][j] = matrix[j][i];            matrix[j][i] = temp;        }    }        // Reverse each row    for (int i = 0; i < n; i++) {        for (int j = 0; j < n / 2; j++) {            int temp = matrix[i][j];            matrix[i][j] = matrix[i][n - 1 - j];            matrix[i][n - 1 - j] = temp;        }    }}

JavaScript实现

function rotate(matrix) {    let n = matrix.length;        // Transpose the matrix    for (let i = 0; i < n; i++) {        for (let j = i; j < n; j++) {            let temp = matrix[i][j];            matrix[i][j] = matrix[j][i];            matrix[j][i] = temp;        }    }        // Reverse each row    for (let i = 0; i < n; i++) {        matrix[i].reverse();    }}

Python 代码实现

def rotate(matrix):   n = len(matrix)   # Transpose the matrixfor i in range(n):    for j in range(i, n):        matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
# Reverse each rowfor row in matrix: row.reverse()

算法解析

  1. 转置矩阵:通过交换矩阵的行和列索引,我们可以实现矩阵的转置。在 i 从 0 到 n-1 循环中,j 从 i 到 n-1 的循环确保我们只交换上三角形部分,避免重复交换。

  2. 反转每行:每一行翻转是通过交换行内的首尾元素逐渐向中间靠拢实现的。这一步是完成旋转的关键,因为转置后的矩阵顺序还不符合顺时针旋转的要求。

示例和测试

以 3x3 矩阵为例,进行旋转操作:

输入:
[  [1, 2, 3],  [4, 5, 6],  [7, 8, 9]]
执行旋转操作后:
[  [7, 4, 1],  [8, 5, 2],  [9, 6, 3]]
通过调用相应的函数,可以看到矩阵被成功旋转。
总结

矩阵旋转是一个可以通过简单的数学操作实现的图像处理技巧。本文介绍的方法利用矩阵的转置和行反转来达到旋转的效果,不需要额外的存储空间,操作简单而高效。

 
热门推荐

上一篇:威海正式工最新招聘42人,各县区均有岗位!

上一篇:

皖ICP备20008326号-9  |   QQ:859242200  |  地址:江苏省宜兴市人力资源产业园  |  电话:13295639219  |