437贪心

lc3459

memo与方向枚举,在二维网格中查找以1开头、1和2交替出现的最长对角线(含转向)路径长度

1. 确定参数与返回值:DFS参数包含当前位置 (i,j) 、移动方向 k 、转向权限 can_turn 、目标值 target ,返回以当前状态出发的最长交替路径长度。

2. 设置终止条件:计算移动后新位置,若越界或网格值不等于 target ,则路径终止,返回0。

3. 处理当前层逻辑:判断是否可读取记忆化缓存,若 can_turn 为 false 且缓存存在,直接返回缓存值避免重复计算。

4. 递归遍历下一层:先沿原方向递归计算路径长度并加1,若有转向权限,切换方向后再次递归,取两次递归结果的最大值。

5. 记忆化优化:当 can_turn 为 false 时,将当前递归计算的路径长度存入 memo[i][j][k] ,供后续相同状态直接调用

class Solution {
static constexpr int DIRS[4][2] = {{1, 1}, {1, -1}, {-1, -1}, {-1, 1}};

public:
int lenOfVDiagonal(vector<vector<int>>& grid) {
int m = grid.size(), n = grid[0].size();
vector memo(m, vector<array<int, 4>>(n));

auto dfs = [&](this auto&& dfs, int i, int j, int k, bool can_turn, int target) -> int {
i += DIRS[k][0];
j += DIRS[k][1];
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] != target) {
return 0;
}
// 只在 can_turn=false 时读取和写入 memo
if (!can_turn && memo[i][j][k]) {
return memo[i][j][k];
}
int res = dfs(i, j, k, can_turn, 2 - target) + 1;
if (!can_turn) {
return memo[i][j][k] = res;
}
int maxs[4] = {m - i, j + 1, i + 1, n - j}; // 理论最大值(走到底)
k = (k + 1) % 4;
// 优化二:如果理论最大值没有超过 res,那么不递归
if (min(maxs[k], maxs[(k + 3) % 4]) > res) {
res = max(res, dfs(i, j, k, false, 2 - target) + 1);
}
return res;
};

int ans = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (grid[i][j] != 1) {
continue;
}
int maxs[4] = {m - i, j + 1, i + 1, n - j}; // 理论最大值(走到底)
for (int k = 0; k < 4; k++) { // 枚举起始方向
// 优化一:如果理论最大值没有超过 ans,那么不递归
if (maxs[k] > ans) {
ans = max(ans, dfs(i, j, k, true, 2) + 1);
}
}
}
}
return ans;
}
};

lc3457

贪心

要被舍弃的数尽可能的小

class Solution {

public:

long long maxWeight(vector<int>& pizzas) {

ranges::sort(pizzas, greater<int>());

int days = pizzas.size() / 4;

int odd = (days + 1) / 2;

long long ans = 0;

for (int i = 0; i < odd; i++)

ans += pizzas[i];

for (int i = 0; i < days / 2; i++) {

ans += pizzas[odd + i * 2 + 1];

}

return ans;

}

};

lc3456

class Solution {
public:
bool hasSpecialSubstring(string s, int k) {
int n = s.size();
int cnt = 0;
for (int i = 0; i < n; i++) {
cnt++;
if (i == n - 1 ||s[i] != s[i + 1]){
if (cnt == k)
return true;
cnt = 0;// try update后置0
}
}
return false;
}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1190320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

告别Figma英文界面:这款中文插件让设计效率提升300%

告别Figma英文界面&#xff1a;这款中文插件让设计效率提升300% 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在对着Figma满屏的英文按钮发呆吗&#xff1f;从"File"到&q…

JiYuTrainer实战指南:突破极域电子教室权限限制的完整解决方案

JiYuTrainer实战指南&#xff1a;突破极域电子教室权限限制的完整解决方案 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 当电子教室成为学习障碍&#xff1a;你面临的真实困境 …

基于Springboot+Vue的考研帮平台学习交流生态圈系统(源码+lw+部署文档+讲解等)

课题介绍本课题针对考研学子学习资源分散、备考规划混乱、交流渠道单一等痛点&#xff0c;设计并实现基于SpringbootVue的考研帮平台学习交流生态圈系统&#xff0c;构建集学习、交流、规划、资源共享于一体的全场景考研服务生态。系统采用Springboot框架搭建后端服务&#xff…

终极城通网盘加速指南:3步实现免费高速直链下载

终极城通网盘加速指南&#xff1a;3步实现免费高速直链下载 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘的龟速下载而抓狂吗&#xff1f;每天都有无数用户在重复着等待、刷新、再等待…

亲测好用2026自考AI论文写作软件TOP8:开题报告文献综述全测评

亲测好用2026自考AI论文写作软件TOP8&#xff1a;开题报告文献综述全测评 2026年自考AI论文写作软件测评&#xff1a;精准筛选&#xff0c;高效助力 随着人工智能技术的不断发展&#xff0c;AI写作工具逐渐成为学术研究和论文写作的重要辅助手段。尤其对于自考学生而言&#xf…

基于Springboot+Vue的林业资源管理系统(源码+lw+部署文档+讲解等)

课题介绍本课题针对传统林业资源管理存在的数据零散、监管低效、动态追踪不足、决策缺乏数据支撑等痛点&#xff0c;设计并实现基于SpringbootVue的林业资源管理系统&#xff0c;构建集资源监测、数据统计、动态管控、决策辅助于一体的智能化林业管理平台。系统采用Springboot框…

MOOTDX通达信数据接口:Python量化分析的终极解决方案

MOOTDX通达信数据接口&#xff1a;Python量化分析的终极解决方案 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX作为Python生态中强大的通达信数据接口封装&#xff0c;为量化投资和金融数…

为什么你的电脑总缺DLL文件?3步彻底解决Visual C++运行库问题

为什么你的电脑总缺DLL文件&#xff1f;3步彻底解决Visual C运行库问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 每次打开游戏或专业软件时&#xff0c;那…

Windows驱动管理终极指南:Driver Store Explorer高效使用手册

Windows驱动管理终极指南&#xff1a;Driver Store Explorer高效使用手册 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 想要彻底解决Windows系统驱动冲突问题&#xff1f;厌倦…

Video2X视频增强技术完全指南:从零基础到专家级应用

Video2X视频增强技术完全指南&#xff1a;从零基础到专家级应用 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/gh_mirrors/vi/vide…

MyTV-Android:面向老旧电视设备的跨代兼容技术方案

MyTV-Android&#xff1a;面向老旧电视设备的跨代兼容技术方案 【免费下载链接】mytv-android 使用Android原生开发的电视直播软件 项目地址: https://gitcode.com/gh_mirrors/my/mytv-android MyTV-Android是一款基于Android原生开发的专业级电视直播应用&#xff0c;专…

B站视频下载终极指南:3步搞定4K高清离线收藏

B站视频下载终极指南&#xff1a;3步搞定4K高清离线收藏 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为B站视频无法离线保存而…

鸣潮性能优化实战手册:从60帧到120帧的完美升级方案

鸣潮性能优化实战手册&#xff1a;从60帧到120帧的完美升级方案 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 还在为《鸣潮》游戏中的卡顿问题烦恼吗&#xff1f;想要获得丝滑流畅的120帧顶级体验&#…

揭秘Cowabunga Lite:免越狱iOS系统定制的技术架构革命

揭秘Cowabunga Lite&#xff1a;免越狱iOS系统定制的技术架构革命 【免费下载链接】CowabungaLite iOS 15 Customization Toolbox 项目地址: https://gitcode.com/gh_mirrors/co/CowabungaLite 在移动设备个性化需求日益增长的今天&#xff0c;Cowabunga Lite作为专为iO…

精通RTL8852BE Wi-Fi 6驱动:从零开始的深度实战指南

精通RTL8852BE Wi-Fi 6驱动&#xff1a;从零开始的深度实战指南 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 想要在Linux系统上充分发挥RTL8852BE Wi-Fi 6网卡的性能潜力&#xff1f;让…

抖音视频批量采集系统:从零搭建个人素材库

抖音视频批量采集系统&#xff1a;从零搭建个人素材库 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 想要高效管理抖音视频素材&#xff1f;这款基于Python开发的批量下载工具将彻底改变您的内容采集方式。…

兰亭妙微干货:B 端界面设计五大核心原则,筑牢企业级产品实用根基

B端界面设计并非单纯的视觉美化&#xff0c;而是基于业务逻辑与用户需求的系统性设计&#xff0c;需遵循五大核心原则&#xff0c;确保产品既满足企业业务诉求&#xff0c;又贴合用户操作习惯。一是清晰性原则。B端界面需承载大量业务数据、操作按钮与流程节点&#xff0c;需通…

ScratchJr桌面版全方位指南:打造儿童编程启蒙第一课

ScratchJr桌面版全方位指南&#xff1a;打造儿童编程启蒙第一课 【免费下载链接】ScratchJr-Desktop Open source community port of ScratchJr for Desktop (Mac/Win) 项目地址: https://gitcode.com/gh_mirrors/sc/ScratchJr-Desktop 在数字化时代&#xff0c;编程已成…

TFT Overlay云顶之弈辅助工具:7天从入门到精通的快速提升指南

TFT Overlay云顶之弈辅助工具&#xff1a;7天从入门到精通的快速提升指南 【免费下载链接】TFT-Overlay Overlay for Teamfight Tactics 项目地址: https://gitcode.com/gh_mirrors/tf/TFT-Overlay 还在为云顶之弈复杂的装备合成和羁绊搭配而烦恼吗&#xff1f;TFT Over…

scBert的输入是什么?怎么构造的,有例子吗?

scBert的输入是什么?怎么构造的,有例子吗? 1. scBERT 的输入是什么? scBERT 的输入是单细胞 RNA 测序(scRNA-seq)数据中单个细胞的基因表达谱。原始数据形式:原本是连续变量,代表单个细胞中数万个基因的表达水…