当前位置: 首页 > article >正文

《LeetCode 顺序刷题》51 - 60

51、[困难] N 皇后位运算哈希表class Solution { private: bool checkCol[10], checkDig1[20], checkDig2[20]; vectorvectorstring ret; vectorstring path; int num; void dfs(int row) { if (row num) { ret.push_back(path); return; } for (int col 0; col num; col) { // 剪枝 if (!checkCol[col] !checkDig1[row - col num] !checkDig2[row col]) { path[row][col] Q; checkCol[col] checkDig1[row - col num] checkDig2[row col] true; dfs(row 1); path[row][col] .; checkCol[col] checkDig1[row - col num] checkDig2[row col] false; } } } public: vectorvectorstring solveNQueens(int n) { num n; path.resize(num); for (int i 0; i num; i) { path[i].append(num, .); } dfs(0); return ret; } };class Solution { private: bool isValid(vectorpairint, int solution, int row, int col) { // 保证和每个皇后的位置都不冲突 for (pairint, int position : solution) { // 不在同一列, 以及不在同一斜线 if (position.second col || (position.first position.second row col) || (position.first - position.second row - col)) { return false; } } return true; } void dfs(vectorvectorpairint, int solutions, vectorpairint, int solution, int row, int n) { // 当每一行的位置都确定之后, 保存方案 if (row n) { solutions.push_back(solution); return; } // 遍历每一列可能的位置 for (int i 0; i n; i) { if (isValid(solution, row, i)) { // 保存当前的皇后位置 solution.push_back(make_pair(row, i)); // 确认下一行皇后的位置 dfs(solutions, solution, row 1, n); // 回溯 solution.pop_back(); } } } vectorvectorstring trans(vectorvectorpairint, int solutions, int n) { vectorvectorstring ret; // 转换每一个方案 for (vectorpairint, int solution : solutions) { vectorstring str(n, string(n, .)); for (pairint, int pos : solution) { // 皇后的位置赋值为 Q str[pos.first][pos.second] Q; } // 转换好一种方案 ret.push_back(str); } return ret; } public: vectorvectorstring solveNQueens(int n) { // 所有的解决方案 vectorvectorpairint, int solutions; // 一种解决方案 vectorpairint, int solution; dfs(solutions, solution, 0, n); return trans(solutions, n); } };52、[困难] N 皇后 Ⅱ位运算哈希表class Solution { public: int totalNQueens(int n) { vectorbool checkCol(10, false), checkDig1(20, false), checkDig2(20, false); int ret 0; dfs(checkCol, checkDig1, checkDig2, ret, n, 0); return ret; } void dfs(vectorbool checkCol, vectorbool checkDig1, vectorbool checkDig2, int ret, int n, int row) { if (n row) { ret; return; } for (int col 0; col n; col) { // 剪枝 if (!checkCol[col] !checkDig1[row - col n] !checkDig2[row col]) { checkCol[col] checkDig1[row - col n] checkDig2[row col] true; dfs(checkCol, checkDig1, checkDig2, ret, n, row 1); checkCol[col] checkDig1[row - col n] checkDig2[row col] false; } } } };class Solution { private: bool isValid(vectorpairint, int solution, int row, int col) { // 保证和每个皇后的位置都不冲突 for (pairint, int position : solution) { // 不在同一列, 以及不在同一斜线 if (position.second col || (position.first position.second row col) || (position.first - position.second row - col)) { return false; } } return true; } void dfs(int ret, vectorpairint, int solution, int row, int n) { // 当每一行的位置都确定之后, 保存方案 if (row n) { ret; return; } // 遍历每一列可能的位置 for (int i 0; i n; i) { if (isValid(solution, row, i)) { // 保存当前的皇后的位置 solution.push_back(make_pair(row, i)); // 确认下一行皇后的位置 dfs(ret, solution, row 1, n); // 回溯 solution.pop_back(); } } } public: int totalNQueens(int n) { int ret 0; vectorpairint, int solution; dfs(ret, solution, 0, n); return ret; } };53、[中等] 最大子数组和线段树动态规划class Solution { public: int maxSubArray(vectorint nums) { int n nums.size(); vectorint dp(n 1); int ret INT_MIN; for (int i 1; i n; i) { dp[i] max(nums[i - 1], dp[i - 1] nums[i - 1]); ret max(ret, dp[i]); } return ret; } };class Solution { public: int maxSubArray(vectorint nums) { int ret INT_MIN, curSum 0; for (const auto num : nums) { curSum curSum 0 ? curSum num : num; ret max(ret, curSum); } return ret; } };54、[中等] 螺旋矩阵数组class Solution { public: vectorint spiralOrder(vectorvectorint matrix) { vectorint ret; if (matrix.empty()) { return ret; } int upper 0, down matrix.size() - 1; int left 0, right matrix[0].size() - 1; while (true) { for (int i left; i right; i) // 向右移动直到最右 { ret.push_back(matrix[upper][i]); } if (upper down) // 重新设定上边界若上边界大于下边界则遍历遍历完成下同 { break; } for (int i upper; i down; i) // 向下 { ret.push_back(matrix[i][right]); } if (--right left) { break; } for (int i right; i left; i--) // 向右 { ret.push_back(matrix[down][i]); } if (--down upper) { break; } for (int i down; i upper; i--) // 向上 { ret.push_back(matrix[i][left]); } if (left right) { break; } } return ret; } };55、[中等] 跳跃游戏贪心class Solution { public: bool canJump(vectorint nums) { int maxpos 0; int n nums.size() - 1; for (int i 0; i n; i) { // 判断是否可以到达当前位置 if (maxpos i) { maxpos max(maxpos, i nums[i]); // 判断最远的位置是否包含最后一个位置 if (maxpos n) { return true; } } else { return false; } } return false; } };56、[中等] 合并区间排序数组class Solution { public: vectorvectorint merge(vectorvectorint intervals) { int m intervals.size(); if (m 0) return {}; sort(intervals.begin(), intervals.end()); vectorvectorint ret; for (int i 0; i m; i) { int left intervals[i][0], right intervals[i][1]; if (!ret.size() || ret.back()[1] left) { ret.push_back({left, right}); } else { ret.back()[1] max(ret.back()[1], right); } } return ret; } };57、[中等] 插入区间数组class Solution { public: vectorvectorint insert(vectorvectorint intervals, vectorint newInterval) { int left newInterval[0]; int right newInterval[1]; bool placed false; vectorvectorint ret; for (const auto interval : intervals) { if (interval[0] right) { // 在插入区间的右侧且无交集 if (!placed) { ret.push_back({left, right}); placed true; } ret.push_back(interval); } else if (interval[1] left) { // 在插入区间的左侧且无交集 ret.push_back(interval); } else { // 与插入区间有交集计算它们的并集 left min(left, interval[0]); right max(right, interval[1]); } } if (!placed) { ret.push_back({left, right}); } return ret; } };58、[简单] 最后一个单词的长度字符串class Solution { public: int lengthOfLastWord(string s) { int index s.size() - 1; while (s[index] ) { index--; } int wordLength 0; while (index 0 s[index] ! ) { wordLength; index--; } return wordLength; } };59、[中等] 螺旋矩阵 Ⅱ数组class Solution { public: vectorvectorint generateMatrix(int n) { vectorvectorint ret(n, vectorint(n)); int left 0, right n - 1; int upper 0, down n - 1; int index 1; while (true) { // 向右 for (int i left; i right; i) { ret[upper][i] index; } if (upper down) { break; } // 向下 for (int i upper; i down; i) { ret[i][right] index; } if (--right left) { break; } // 向左 for (int i right; i left; i--) { ret[down][i] index; } if (--down upper) { break; } // 向上 for (int i down; i upper; i--) { ret[i][left] index; } if (left right) { break; } } return ret; } };

相关文章:

《LeetCode 顺序刷题》51 - 60

51、[困难] N 皇后 位运算 哈希表 class Solution { private:bool checkCol[10], checkDig1[20], checkDig2[20];vector<vector<string>> ret;vector<string> path;int num;void dfs(int row) {if (row num) {ret.push_back(path);return;}for (int col …...

Phi-3-vision-128k-instruct部署案例:边缘设备(Jetson Orin)轻量化适配尝试

Phi-3-vision-128k-instruct部署案例&#xff1a;边缘设备&#xff08;Jetson Orin&#xff09;轻量化适配尝试 1. 模型简介 Phi-3-Vision-128K-Instruct 是一款轻量级的多模态模型&#xff0c;属于Phi-3系列的最新成员。这个模型特别适合在边缘计算设备上运行&#xff0c;因…...

Phi-3-vision-128k-instruct部署案例:高校AI实验室多模态教学平台搭建

Phi-3-vision-128k-instruct部署案例&#xff1a;高校AI实验室多模态教学平台搭建 1. 项目背景与模型介绍 Phi-3-Vision-128K-Instruct是微软推出的轻量级多模态模型&#xff0c;专为图文对话场景优化设计。作为Phi-3模型家族成员&#xff0c;它支持长达128K的上下文窗口&…...

蓝桥杯(排序)

下面介绍几种常用的排序方法以P1177模板题为例&#xff08;1&#xff09;插入排序将数组第一个元素化为已排序区间 从第 2 个元素&#xff08;未排序区间第一个&#xff09;开始&#xff0c;逐个取出元素作为待插入元素 将待插入元素与前面已排序区间的元素从后往前作比较若已排…...

计算机毕业设计springboot面向移动端的线上作业系统的设计与实现App 基于Spring Boot的移动端在线作业管理系统的设计与开发 面向移动设备的线上作业系统开发:基于Spring Boot

计算机毕业设计springboot面向移动端的线上作业系统的设计与实现App_t6302 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着移动互联网的快速发展&#xff0c;传统的教学模式…...

Python全栈入门到实战【基础篇 13】复合数据类型:字典(键值映射)与集合(无序去重)

前言 哈喽各位小伙伴!前面咱们学了字符串、数字这些基础类型,也掌握了列表这种有序序列——但实际开发中,仅靠这些还不够: 想存储“姓名-年龄-手机号”这种“键值对应”的用户信息,用列表只能按位置存([“张三”, 20, “13812345678”]),查手机号要记索引,极不方便;…...

Qwen3-Reranker-0.6B基础教程:1.2GB模型文件完整性校验(sha256)方法

Qwen3-Reranker-0.6B基础教程&#xff1a;1.2GB模型文件完整性校验&#xff08;sha256&#xff09;方法 1. 为什么需要校验模型文件完整性 当你下载Qwen3-Reranker-0.6B这个1.2GB的大文件时&#xff0c;可能会遇到各种问题&#xff1a;网络中断导致下载不完整、存储设备故障造…...

Phi-3-mini-128k-instruct应用场景:为低代码平台注入智能表单生成与校验能力

Phi-3-mini-128k-instruct应用场景&#xff1a;为低代码平台注入智能表单生成与校验能力 你是不是也遇到过这样的场景&#xff1f;公司要上线一个新业务&#xff0c;产品经理火急火燎地跑过来&#xff1a;“快&#xff0c;明天就要一个用户注册表单&#xff0c;字段大概20个&a…...

UI-TARS-desktop行业案例:医疗信息科用Qwen3-Agent自动抓取指南文献、提取适应症、生成摘要表

UI-TARS-desktop行业案例&#xff1a;医疗信息科用Qwen3-Agent自动抓取指南文献、提取适应症、生成摘要表 1. 医疗信息处理的痛点与解决方案 医疗信息科每天需要处理大量的医学文献、临床指南和研究报告。传统的人工处理方式效率低下&#xff0c;容易出现遗漏和错误。医生和研…...

Qwen Pixel Art实战教程:结合Label Studio构建像素艺术数据标注-生成闭环

Qwen Pixel Art实战教程&#xff1a;结合Label Studio构建像素艺术数据标注-生成闭环 1. 引言&#xff1a;从想法到像素的完整旅程 你有没有想过&#xff0c;自己动手创造一套风格统一的像素艺术角色&#xff1f;比如为你的独立游戏设计主角、NPC和怪物&#xff0c;或者为你的…...

Nanbeige4.1-3B多场景落地:开发者写代码、运营写文案、HR写JD的三类Prompt模板

Nanbeige4.1-3B多场景落地&#xff1a;开发者写代码、运营写文案、HR写JD的三类Prompt模板 你是不是也遇到过这样的问题&#xff1a;拿到一个看起来很强大的AI模型&#xff0c;比如这个3B参数的Nanbeige4.1-3B&#xff0c;但真要用起来的时候&#xff0c;却不知道该怎么跟它“…...

LFM2.5-1.2B-Thinking在Ollama中怎么用?图文并茂的零基础操作手册

LFM2.5-1.2B-Thinking在Ollama中怎么用&#xff1f;图文并茂的零基础操作手册 本文面向零基础用户&#xff0c;手把手教你如何在Ollama中使用LFM2.5-1.2B-Thinking模型&#xff0c;无需任何技术背景&#xff0c;跟着做就能快速上手。 1. 认识LFM2.5-1.2B-Thinking模型 LFM2.5-…...

DeepSeek-OCR · 万象识界实战案例:企业合同扫描件自动转Markdown结构化处理

DeepSeek-OCR 万象识界实战案例&#xff1a;企业合同扫描件自动转Markdown结构化处理 你有没有遇到过这样的情况&#xff1f;公司财务部送来一沓合同扫描件&#xff0c;要求你把关键信息整理成电子文档。你打开PDF&#xff0c;看着密密麻麻的文字和表格&#xff0c;心里默默计…...

BERT文本分割-中文-通用领域企业级应用:提升客服对话日志分析结构化水平

BERT文本分割-中文-通用领域企业级应用&#xff1a;提升客服对话日志分析结构化水平 1. 引言&#xff1a;客服对话分析的结构化挑战 在客服行业中&#xff0c;每天都会产生海量的对话记录。这些对话通常以长文本形式存在&#xff0c;缺乏段落分隔和结构信息&#xff0c;给后续…...

SenseVoice-Small ONNX部署案例:电商直播语音→商品卖点自动提取系统

SenseVoice-Small ONNX部署案例&#xff1a;电商直播语音→商品卖点自动提取系统 1. 项目背景与价值 电商直播已经成为现代零售的重要渠道&#xff0c;但海量的直播内容带来了新的挑战。主播在直播中会详细介绍商品特点&#xff0c;但这些宝贵的卖点信息往往随着直播结束而消…...

EmbeddingGemma-300m部署教程:Ollama+Docker组合实现多实例并发嵌入服务

EmbeddingGemma-300m部署教程&#xff1a;OllamaDocker组合实现多实例并发嵌入服务 1. 为什么你需要一个轻量又靠谱的嵌入模型 你是不是也遇到过这些情况&#xff1a; 想给自己的知识库加个语义搜索&#xff0c;但主流大模型动辄几GB显存&#xff0c;笔记本直接卡死&#xf…...

Qwen3-Reranker-0.6B部署教程:NVIDIA Jetson边缘设备低功耗运行实测

Qwen3-Reranker-0.6B部署教程&#xff1a;NVIDIA Jetson边缘设备低功耗运行实测 1. 引言&#xff1a;为什么要在边缘设备上跑重排序模型&#xff1f; 如果你用过RAG&#xff08;检索增强生成&#xff09;系统&#xff0c;肯定遇到过这种情况&#xff1a;系统给你找回来一堆文…...

SiameseAOE中文-base实际效果:某电商平台日均百万条评论中属性覆盖率98.2%

SiameseAOE中文-base实际效果&#xff1a;某电商平台日均百万条评论中属性覆盖率98.2% 1. 引言&#xff1a;电商评论分析的挑战与机遇 每天&#xff0c;电商平台都会产生海量的用户评论。这些评论里藏着宝贵的用户反馈&#xff1a;哪些产品特性被喜欢&#xff0c;哪些需要改进…...

10 - 厂商特定测试

&#x1f3af; 学习目标 完成本章后&#xff0c;你将能够&#xff1a; ✅ 了解不同 GPU 厂商的特性和测试重点✅ 理解 Intel、AMD、NVIDIA 等厂商的专有功能✅ 掌握厂商特定测试的编写方法✅ 学会根据硬件平台选择合适的测试✅ 理解跨厂商测试的注意事项 &#x1f4d6; 厂商概…...

产业链供应链论文“从0到1”写作指南:我用这套AI指令三天跑完框架(附可直接复制的Prompt)

带过四届经济学、物流管理专业毕业设计&#xff0c;每年3月都会被同一个问题轰炸&#xff1a;“老师&#xff0c;产业链供应链这个题太大了&#xff0c;我拆不动。”学生交上来的初稿&#xff0c;十有八九长一个样&#xff1a;第一章写“双循环背景”&#xff0c;第二章抄“波特…...

Triton编程技术指南

1、概念OpenAI Triton是一个开源的、类似Python的编程语言和编译器。&#xff08;1&#xff09;Program在CUDA中&#xff0c;程序员通常需要管理Thread&#xff08;线程&#xff09;和Block&#xff08;线程块&#xff09;&#xff0c;一个Block包含多个Threads。在Triton中&am…...

每天认识一种投资品类:货币基金

文章目录1.简介2.底层标的3.特点4.投资建议5.小结参考文献1.简介 货币基金&#xff08;Money Market Funds&#xff09;&#xff0c;全称货币市场基金&#xff0c;是一种主要投资于短期货币市场工具的开放式公募基金。 简单来说&#xff0c;它是一种兼具活期存款的便利性和高…...

【Java从入门到入土】06:String的72变:从字符串拼接到底层优化

【Java从入门到入土】06&#xff1a;String的72变&#xff1a;从字符串拼接到底层优化 String是Java开发中使用率Top1的类&#xff0c;几乎所有项目都绕不开字符串操作——但多数人只停留在“能用”的层面&#xff1a;用拼接字符串、不知道常量池的存在、正则验证写得漏洞百出&…...

ADAS域控基础软件工程师的“数字助理”:OpenClaw自动化实战入门(18大案例版)

&#x1f4d6; 目录 我们每天都在忙什么&#xff1f;——ADAS工程师的日常OpenClaw是谁&#xff1f;一个听你话的“数字助理”OpenClaw凭什么适合车载研发&#xff1f;——数据安全本地干活十八个实战案例&#xff08;分组详版&#xff09; 环境配置类&#xff08;3个案例&…...

ssm+java2026年毕设求知书友屋网站【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于图书管理系统的研究&#xff0c;现有研究主要以传统单机版管理系统或简单的Web应用为主&#xff0c;专门针对基于SSM框架&…...

ssm+java2026年毕设情报综合管理系统【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于警务信息化管理问题的研究&#xff0c;现有研究主要以综合警务管理平台、案件管理系统为主&#xff0c;专门针对警务情报精…...

ssm+java2026年毕设清空购物商城系统【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于电商管理系统的研究&#xff0c;现有研究主要以大型综合电商平台&#xff08;如淘宝、京东&#xff09;的整体架构设计为主…...

SpikeTrack: A Spike-driven Framework for Efficient Visual Tracking—— 一种用于高效视觉追踪的脉冲驱动框架

1. 研究背景与问题 背景: 脉冲神经网络&#xff08;SNN&#xff09;因其事件驱动的特性和稀疏计算优势&#xff0c;在神经形态芯片上具有远超人工程神经网络&#xff08;ANN&#xff09;的能效潜力&#xff0c;非常适合处理视频中的连续运动目标。 问题: 现有的将SNN应用于RGB…...

【4G LTE协议分析系列】六、预编码

预编码 整体流程 Precoding vs TM 传输分集Precoding 空间复用Precoding-large delay CDD 空间复用Precoding-selected Codebook Codebook selection for Precoding - 2 Antenna Ports Codebook selection for Precoding - 4 Antenna Ports Codebook for 4 x 2 MIMO Precoding信…...

数据结构顺序表的使用(含通讯录项目)

目录 一&#xff0c;什么是数据结构&#xff1f; 二&#xff0c;顺序表的概念和分类 1&#xff0c;线性表 2&#xff0c;顺序表 3&#xff0c;顺序表的分类 三&#xff0c;动态顺序表的增删查改 四&#xff0c;通讯录项目 五&#xff0c;顺序表练习 1&#xff0c;力扣…...