leetcode 329. 矩阵中的最长递增路径

devtools/2025/1/12 20:28:23/

题目:329. 矩阵中的最长递增路径 - 力扣(LeetCode)

数据规模很小,排序就够了

struct Node {int x;int y;int val;Node* up = nullptr;Node* down = nullptr;Node* left = nullptr;Node* right = nullptr;int length = 0;Node(int _x, int _y, int _v) {x = _x;y = _y;val = _v;}
};
bool myComp(Node* a, Node* b) {return a->val < b->val;
}
class Solution {
public:int longestIncreasingPath(vector<vector<int>>& matrix) {vector<Node*> arr;int upIdx, leftIdx;for (int i = 0; i < matrix.size(); i++) {vector<int>& t = matrix[i];for (int j = 0; j < t.size(); j++) {Node* node = new Node(i, j, t[j]);arr.push_back(node);if (i > 0) {upIdx = (i - 1) * t.size() + j;node->up = arr[upIdx];arr[upIdx]->down = node;}if (j > 0) {leftIdx = i * t.size() + j - 1;node->left = arr[leftIdx];arr[leftIdx]->right = node;}}}sort(arr.begin(), arr.end(), myComp);int max;int ret = 1;for (int i = 0; i < arr.size(); i++) {Node* node = arr[i];max = 0;if (node->left && node->left->val < node->val && node->left->length > max) {max = node->left->length;}if (node->right && node->right->val < node->val && node->right->length > max) {max = node->right->length;}if (node->up && node->up->val < node->val && node->up->length > max) {max = node->up->length;}if (node->down && node->down->val < node->val && node->down->length > max) {max = node->down->length;}node->length = max + 1;if (node->length > ret) {ret = node->length;}}return ret;}
};


http://www.ppmy.cn/devtools/149967.html

相关文章

修改sshd默认配置,提升安全

对于Linux服务器&#xff0c;特别是暴露在公网的服务器&#xff0c;会经常被人扫描、探测和攻击。包括通过ssh访问登录攻击。对此&#xff0c;对默认的sshd配置进行调整&#xff0c;提升安全。 下面以CentOS 7.9为例说明&#xff1a; 一、常见安全措施 以root用户编辑vim /e…

智能运维新时代:AI在云资源管理中的应用与实践

随着云计算的广泛应用,云资源管理的重要性日益凸显。企业需要应对复杂的资源分配、性能优化以及成本控制等挑战,而传统的手动管理方法已经无法满足现代大规模云环境的需求。人工智能(AI)以其强大的数据处理能力和预测分析能力,为云资源管理提供了新的解决方案。 本文将深…

make工程管理器与Makefile

目录 一、介绍 1、make工程管理器 2、Makefile 二、Makefile语法规则 1、Makefile语法格式 2、Makefile中特殊处理与伪目标 3、变量、规则与函数 (1)自定义变量使用示例 (2)自动变量使用示例 一、介绍 1、make工程管理器 定义&#xff1a; make是一个命令工具&…

Java中的反射机制及其应用场景

目录 什么是Java反射机制&#xff1f; 工作原理 主要应用场景 注意事项 总结 什么是Java反射机制&#xff1f; Java反射机制是一种强大的工具&#xff0c;它允许程序在运行时访问、检查和修改其本身的类和对象的信息。通过反射&#xff0c;开发者可以在不知道类的具体实现…

小米路由器IPv6 功能使用指南

本文不限于多层路由使用IPv6 的情况&#xff0c;提供解决IPv6 无法获取的更硬核的方法&#xff0c;需要有ssh 工具。&#xff08;无安卓设备&#xff0c;测试环境win、mac、ios&#xff09; 首先明确一点&#xff0c;就是如果想让你的设备得到GUA 地址&#xff0c;即访问 6.i…

2025 西电软工数据结构机考 Tip (By Felix)

2025/01/07 18:30-20:30 XDOJ 五道题 三道题即为满分 近两年没有考过图和字符串&#xff0c;链表和树为重点内容&#xff08;必考 重点准备&#xff09; 2024年五道题&#xff1a; 题目内容类型得分未知C语言未参加给出后序和中序遍历建树树未参加堆排序输出过程量排…

安全运维管理 10.2资产管理

等级保护对象的资产包括各种硬件设备&#xff08;如网络设备、安全设备、服务器设备、操作终端、存储设备和存储介质&#xff0c;以及供电和通信用线缆等&#xff09;、各种软件&#xff08;如操作系统、数据库管理系统、应用系统等&#xff09;各种数据&#xff08;如配置数据…

生信算法10 - Levenshtein距离与汉明距离比对序列差异

1. Levenshtein 距离 Levenshtein 距离&#xff0c;也称为编辑距离&#xff0c;是一种衡量两个字符串之间差异的度量方法。它表示将一个字符串转换为另一个字符串所需的最少编辑操作次数&#xff0c;允许的编辑操作包括插入、删除和替换字符。 1.1 Levenshtein 距离的应用&…