C++ lamda表达式
迪丽瓦拉
2025-05-29 06:44:27
0

leetcode1030 距离顺序排序矩阵单元格

Q:

给定四个整数 rows ,   cols ,  rCenter 和 cCenter 。有一个 rows x cols 的矩阵,你在单元格上的坐标是 (rCenter, cCenter) 。

返回矩阵中的所有单元格的坐标,并按与 (rCenter, cCenter) 的 距离 从最小到最大的顺序排。你可以按 任何 满足此条件的顺序返回答案。

单元格(r1, c1) 和 (r2, c2) 之间的距离为|r1 - r2| + |c1 - c2|。

A:

看到题目第一反应是用bfs,一层一层搜索上下左右四个节点,但显然计算量很大,要判断节点是否越界和是否已被访问。

如果用sort()函数排序,则会快很多,用lamda表达式可以简化代码

class Solution {
public:vector> allCellsDistOrder(int rows, int cols, int rCenter, int cCenter) {vector> res;for(int i=0;i& a, const vector& b){return dist(a[0],a[1]) < dist(b[0],b[1]);});return res;}
};

lamda表达式的基本形式为:

[capture list] (params list) mutable exception-> return type { function body }

其中的一些元素可以被省略,最常用的形式为:

[capture list] (params list) {function body}

[capture list]表示捕获外部变量的方式,也就是外部变量如何传进function body

[variance_name]:值捕获

[&variance_name]:引用捕获

[=]: 隐式捕获,方式为值捕获,不需要写明外部变量名字

[&]: 隐式捕获,方式为引用捕获

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...