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

为什么复旦教授建议在洗澡时千万不要做人脸认证。

0
分享至

最近在网上看到一个新闻,中科院张军平教授提醒大家,千万不要在洗澡的时候去做人脸认证。他说:摄像头并不是只看到圆的这一块内容,屏幕上所显示的“摄像头的圆”其实是起了一个“掩码”的作用,实际上被拍到的画面不止于这个“圆”。

其实张教授说的非常对,所谓的人脸识别并不是只拍摄圆框内的图像,人脸识别它调用的是手机的相机,需要拍照权限,整个拍摄区域是一个矩形,也就是整个屏幕都能看到的区域,和平时拍照一样。而在人脸识别中的那个圆形图像主要是确认你不要偏的太远,所以很多人都认为相机是只抓取了圆形框的那一块,实际上这是不对的。

为什么我知道这么多,因为在很多年前公司做国内外贷款业务的时候,我做过人脸识别的功能,拍摄无关的区域我们会用图片把它盖上,给你看到的要么是一个圆形头像,要么是一个小的矩形,但拍摄之后我们还会对图像截取和压缩,截取的时候只截取矩形框内的图像,如果拍照的时候离的太远,是可以看到上半身的。

当时我们在服务器后台确实也看到不少光着膀子的。如果遇到那种图像不截取的,基本上你拍到的所有区域都是能看到的,所以大家人脸识别的时候最好还是要穿上衣服。

--------------下面是今天的算法题--------------

来看下今天的算法题,这题是LeetCode的第1559题:二维网格图中探测环,难度是中等。

给你一个二维字符网格数组 grid ,大小为 m x n ,你需要检查 grid 中是否存在相同值形成的环。

一个环是一条开始和结束于同一个格子的长度大于等于 4 的路径。对于一个给定的格子,你可以移动到它上、下、左、右四个方向相邻的格子之一,可以移动的前提是这两个格子有相同的值 。

同时,你也不能回到上一次移动时所在的格子。比方说,环 (1, 1) -> (1, 2) -> (1, 1) 是不合法的,因为从 (1, 2) 移动到 (1, 1) 回到了上一次移动时的格子。

如果 grid 中有相同值形成的环,请你返回 true ,否则返回 false 。

示例1:


输入:grid = [["a","a","a","a"],["a","b","b","a"],["a","b","b","a"],["a","a","a","a"]] 输出:true 解释:如上图所示,有 2 个用不同颜色标出来的环:

示例2:


输入:grid = [["c","c","c","a"],["c","d","c","c"],["c","c","e","c"],["f","c","c","c"]] 输出:true 解释:如上图所示,只有高亮所示的一个合法环:

  • m == grid.length

  • n == grid[i].length

  • 1 <= m <= 500

  • 1 <= n <= 500

  • grid 只包含小写英文字母。

问题分析

这题让判断在矩阵中相同的字符是否可以构成环,解法比较多,可以使用并查集,也可以使用BFS或者DFS。我们按照矩阵的深度优先搜索(DFS)来解这道题。

首先从起始点开始搜索,只搜索字符相同的点,搜索的时候只能沿着当前位置的上下左右四个方向搜索,并且搜索的节点不能重复,也就是不能回退,

如果遇到某个点被搜索过,说明找到了一个环,直接返回true即可。否则继续遍历矩阵中下一个没有被搜索过的点,从该点继续搜索。

JAVA:

public boolean containsCycle(char[][] grid) {
int m = grid.length, n = grid[0].length;
boolean[][] vis = newboolean[m][n];// 记录当前位置是否被访问过
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (!vis[i][j] && dfs(grid, vis, i, j, -1, -1, grid[i][j]))
returntrue;
}
}
returnfalse;
}


// (pai,paj)表示上一个节点的坐标,ch表示本次搜索的字符必须和ch字符相同。
private boolean dfs(char[][] grid, boolean[][] vis, int i, int j, int pai, int paj, char ch) {
// 边界条件判断
if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] != ch)
returnfalse;
if (vis[i][j]) // 已访问过该节点,说明存在环
returntrue;
vis[i][j] = true; // 标记当前节点为已访问
int[][] dirs = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};// 方向数组
for (int[] dir : dirs) {
int x = i + dir[0];
int y = j + dir[1];
if (x == pai && y == paj) // 跳过上一个节点(避免回退)
continue;
if (dfs(grid, vis, x, y, i, j, ch))// 上下左右四个方向只要有一个能找到环,则返回true
returntrue;
}
returnfalse;
}

C++:

public:
bool containsCycle(vector> &grid) {
int m = grid.size(), n = grid[0].size();
vector> vis(m, vector(n, false));// 记录当前位置是否被访问过
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (!vis[i][j] && dfs(grid, vis, i, j, -1, -1, grid[i][j]))
return true;
}
}
return false;
}


// (pai,paj)表示上一个节点的坐标,ch表示本次搜索的字符必须和ch字符相同。
bool dfs(vector> &grid, vector> &vis, int i, int j, int pai, int paj, char ch) {
// 边界条件判断
if (i < 0 || i >= grid.size() || j < 0 || j >= grid[0].size() || grid[i][j] != ch)
return false;
if (vis[i][j]) // 已访问过该节点,说明存在环
return true;
vis[i][j] = true; // 标记当前节点为已访问
int dirs[4][2] = {{-1, 0},
{1, 0},
{0, -1},
{0, 1}};// 方向数组
for (auto &dir: dirs) {
int x = i + dir[0];
int y = j + dir[1];
if (x == pai && y == paj) // 跳过上一个节点(避免回退)
continue;
if (dfs(grid, vis, x, y, i, j, ch))// 上下左右四个方向只要有一个能找到环,则返回true
return true;
}
return false;
}

笔者简介

博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解900多题,对算法题有自己独特的解题思路和解题技巧。

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

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.

相关推荐
热点推荐
山姆到底怎么了?

山姆到底怎么了?

互联网圈子那点事
2026-10-06 12:10:12
462亿元!华为宣布:高通收购华为美国专利,“韬定律”能卖钱了

462亿元!华为宣布:高通收购华为美国专利,“韬定律”能卖钱了

DeepAuto车探
2026-10-06 08:50:45
关闭电商、取消外卖,恢复市面繁荣 ,将人间烟火气重燃 , 是否可行

关闭电商、取消外卖,恢复市面繁荣 ,将人间烟火气重燃 , 是否可行

兴趣知识
2026-10-06 01:09:51
佤邦“副总司令”在昆明豪宅藏着什么?成箱现金、世界名表、多辆豪车

佤邦“副总司令”在昆明豪宅藏着什么?成箱现金、世界名表、多辆豪车

听心堂
2026-10-06 09:04:53
台湾可以保留自己的军队,大陆不派一兵一卒进台

台湾可以保留自己的军队,大陆不派一兵一卒进台

小马姨
2026-10-04 17:17:00
细思极恐!俄罗斯鼠疫实验室出大事了,28岁女研究员死亡,病原体至今成谜

细思极恐!俄罗斯鼠疫实验室出大事了,28岁女研究员死亡,病原体至今成谜

徐德文科学频道
2026-10-06 15:09:09
王思聪女友懒懒游欧洲,五套妆造全在审美点上,老外回头率200%

王思聪女友懒懒游欧洲,五套妆造全在审美点上,老外回头率200%

孤芳自赏的小李
2026-10-05 19:56:18
当年被同行当成笑话的想法,今年拿下了诺奖

当年被同行当成笑话的想法,今年拿下了诺奖

果壳
2026-10-05 22:07:50
高铁开始“烧钱”了?5万公里陆续跑满10年,维修大潮才刚开始

高铁开始“烧钱”了?5万公里陆续跑满10年,维修大潮才刚开始

兴趣知识
2026-10-05 12:12:47
头撞南墙不回头,黄友政2-3憾负林昀儒,战术认识存在大"bug"

头撞南墙不回头,黄友政2-3憾负林昀儒,战术认识存在大"bug"

真理是我亲戚
2026-10-06 14:35:40
CBA快讯,俱乐部老板集体摊牌,郭士强无地自容,篮协服软大改革

CBA快讯,俱乐部老板集体摊牌,郭士强无地自容,篮协服软大改革

体坛小快灵
2026-10-06 12:43:56
就在刚刚,中国大满贯爆冷!国乒遭遇首败,奥运亚军0-3被淘汰,王曼昱迅速结束比赛

就在刚刚,中国大满贯爆冷!国乒遭遇首败,奥运亚军0-3被淘汰,王曼昱迅速结束比赛

锐评利物浦
2026-10-06 10:46:08
发现一个残忍现实: 房价上涨大势或已形成, 多个城市开始了量价齐升

发现一个残忍现实: 房价上涨大势或已形成, 多个城市开始了量价齐升

兴趣知识
2026-10-05 12:05:25
球拍砸观众!法国选手在中国6天连续2次退赛:情绪暴躁 毫无体育精神

球拍砸观众!法国选手在中国6天连续2次退赛:情绪暴躁 毫无体育精神

风过乡
2026-10-06 12:12:29
公立医院“下场”带娃,并非跨界“抢生意” | 新京报快评

公立医院“下场”带娃,并非跨界“抢生意” | 新京报快评

新京报评论
2026-10-05 15:48:04
“权贵们的新套路!”北理工裴轶的来时路被扒:和协和4+4竟是一个套路

“权贵们的新套路!”北理工裴轶的来时路被扒:和协和4+4竟是一个套路

妍妍教育日记
2026-10-05 10:10:15
手握11万亩地皮,每年收租25亿,银行存700多亿,她才是我国隐形“地产女首富”

手握11万亩地皮,每年收租25亿,银行存700多亿,她才是我国隐形“地产女首富”

琅琊财经
2026-10-05 21:44:04
国足主帅邵佳一再表态

国足主帅邵佳一再表态

政知新媒体
2026-10-05 21:36:00
决议通过!多国向中方表示祝贺

决议通过!多国向中方表示祝贺

扬子晚报
2026-10-06 09:33:02
16分钟轰22分!东契奇进攻无解连献低级失误 体重成MVP最大阻碍

16分钟轰22分!东契奇进攻无解连献低级失误 体重成MVP最大阻碍

颜小白的篮球梦
2026-10-06 11:43:00
2026-10-06 17:59:00
数据结构和算法
数据结构和算法
专门介绍和写算法题解的号
273文章数 4关注度
往期回顾 全部

科技要闻

光遗传学是什么,为什么这项发现如此重要

头条要闻

贵州女子五天爬完五岳 当事人:耗时最长的是华山

头条要闻

贵州女子五天爬完五岳 当事人:耗时最长的是华山

体育要闻

30天30队·雄鹿:没有扬尼斯,重新试错吧

娱乐要闻

身家千万独居的王曼昱,私底下有多壕

财经要闻

杨植麟断腕:Kimi的至暗时刻与远征

汽车要闻

智能化再提升 2027款东风标致、东风雪铁龙新车更人性化了

态度原创

健康
教育
房产
艺术
手机

刷酸祛痘,为什么有人翻车?

教育要闻

这题有歧义,答案到底是什么?

房产要闻

保利大爆发,冲到榜一!海南楼市前三季度,热销榜出炉!

艺术要闻

米芾晚年的登峰造极之作,赵孟頫含泪写了800遍,乾隆:这是天下最美的字!

手机要闻

苹果与AT&T仍未说明iPhone 18 Pro Max断网故障根因 已受影响设备需更换

无障碍浏览 进入关怀版