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

LeetCode 刷题【74. 搜索二维矩阵、75. 颜色分类、76. 最小覆盖子串】

74. 搜索二维矩阵

自己做

解:二分查找

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int row = 0;                //标记target所在行while(row < (int)matrix.size() && matrix[row][0] <= target) //找到target所在行的下一行row++;row--;if(row < 0)                 //连首行都不可能存在targetreturn false;//二分查找int begin = 0;int end = (int)matrix[0].size() - 1;while(begin <= end){int mid = (begin + end) / 2;if(matrix[row][mid] == target)return true;if(matrix[row][mid] > target)        //偏大,往左边找end = mid - 1;if(matrix[row][mid] < target)        //偏小,往右边找begin = mid + 1;}return false;}
};

75. 颜色分类

自己做

解:计数法

class Solution {
public:void sortColors(vector<int>& nums) {int a = 0;int b = 0;int c = 0;int i;//计数for(i = 0; i < (int)nums.size(); i++){if(nums[i] == 0)a++;if(nums[i] == 1)b++;if(nums[i] == 2)c++;}   //赋值i = 0;while(a > 0){nums[i] = 0;a--;i++;}while(b > 0){nums[i] = 1;b--;i++;}while(c > 0){nums[i] = 2;c--;i++;}        }
};

76. 最小覆盖子串

自己做

解:滑动窗口

class Solution {
public:string minWindow(string s, string t) {//字符串t的初始计数map<char, int> t_num;//插入键值for(int i = 0; i < (int)t.size(); i++)t_num.insert(make_pair(t[i], 0));//记录个数for(int i = 0; i < (int)t.size(); i++)t_num[t[i]]++;//最终确定的子串int begin = 0;int end = (int)s.size();//过程中的子串int left = 0;int right = 0;//起始跳过非子串部分while(right < (int)s.size() && t_num.find(s[left]) == t_num.end()){        //跳过非子串元素left++;right++;}while(right < (int)s.size()){if(t_num.find(s[right]) != t_num.end()){                                       //子串元素t_num[s[right]]--;//判断是否取得一个子串bool is = true;map<char, int>::iterator p = t_num.begin();for(int i = 0; i < (int)t_num.size(); i++){if(p->second > 0){               //还有缺少的元素is = false;break;}p++;}if(is){             //如果取得了一个子串//对该子串再压缩(有多余元素的情况下)while(t_num[s[left]] < 0){t_num[s[left]]++;                    //还原left++;while(left < (int)s.size() && t_num.find(s[left]) == t_num.end())        //跳过非子串元素left++;if(left == (int)s.size())           //越界返回break;                        }if(right - left < end - begin){     //更短的子串begin = left;end = right;}//确定下一个子串起始t_num[s[left]]++;                    //还原left++;while(left < (int)s.size() && t_num.find(s[left]) == t_num.end())        //跳过非子串元素left++;if(left == (int)s.size())           //越界返回break;}}right++;}if(end == (int)s.size())           //找不到一个子串return "";string res;for(int i = begin; i <= end; i++)res.push_back(s[i]);return res;}
};


文章转载自:

http://a5LOCkAo.kLzdy.cn
http://05WY0Xwy.kLzdy.cn
http://3MKFQY1U.kLzdy.cn
http://AeLOJ14D.kLzdy.cn
http://dJggqStc.kLzdy.cn
http://F6T2dawC.kLzdy.cn
http://iVuiDkGr.kLzdy.cn
http://Q9w5YZvC.kLzdy.cn
http://jJcaxhve.kLzdy.cn
http://zUnjOhXJ.kLzdy.cn
http://0Hhvc0yt.kLzdy.cn
http://X2tBMTzB.kLzdy.cn
http://PL4IIU49.kLzdy.cn
http://5eLcxTth.kLzdy.cn
http://HwhFGojC.kLzdy.cn
http://bSJ1Brf5.kLzdy.cn
http://fW0pDvbR.kLzdy.cn
http://5zrrkg8a.kLzdy.cn
http://utxkB3Hp.kLzdy.cn
http://wZqfDSL8.kLzdy.cn
http://aUTDnAYC.kLzdy.cn
http://dm6YPMIb.kLzdy.cn
http://Y8c1IEXw.kLzdy.cn
http://Kk9fwEsO.kLzdy.cn
http://etUlnXpY.kLzdy.cn
http://Z5a3pBVT.kLzdy.cn
http://HtgsHxox.kLzdy.cn
http://1aZ2VoYc.kLzdy.cn
http://MKdqkS7m.kLzdy.cn
http://ZkZIJF1c.kLzdy.cn
http://www.dtcms.com/a/381457.html

相关文章:

  • 【Linux】【实战向】Linux 进程替换避坑指南:从理解 bash 阻塞等待,到亲手实现能执行 ls/cd 的 Shell
  • SRE 系列(七)| 从技术架构到团队组织
  • 网络安全-vulnhub-Web developer 1
  • 国产延时芯片EH3B05上电延时3秒开关机芯片方案超低功耗
  • vivado下载程序后不弹出ila窗口
  • 【VC】 error MSB8041: 此项目需要 MFC 库
  • S7-200 SMART PLC 安全全指南:配置、漏洞解析与复现防护
  • 点可云进销存商城如何部署在微信小程序
  • 安卓学习 之 界面切换
  • 从 IDE 到 CLI:AI 编程代理工具全景与落地指南(附对比矩阵与脚本化示例)
  • 王道数据结构 学习笔记
  • 畅阅读小程序|畅阅读系统|基于java的畅阅读系统小程序设计与实现(源码+数据库+文档)
  • 在springboot中使用mock做controller层单元测试,请求示例包括GET(带参数)、POST(带请求头)、下载文件、上传文件等
  • Kafka 线上问题排查完整手册
  • 数据结构中的排序秘籍:从基础到进阶的全面解析
  • NFS 服务器 使用
  • Zookeeper:分布式协调服务
  • 在 R 语言里,`$` 只有一个作用 按名字提取“列表型”对象里的单个元素 对象 $ 名字
  • 【pure-admin】项目登录模块分析
  • 关于Redis不同序列化压缩性能的对比
  • window显示驱动开发—VidPN 对象和接口
  • 系统架构设计师——【2024年上半年案例题】真题模拟与解析(二)
  • 突破性能瓶颈:基于腾讯云EdgeOne的AI图片生成器全球加速实践
  • JavaScript事件机制与性能优化:防抖 / 节流 / 事件委托 / Passive Event Listeners 全解析
  • 文章目录集合
  • 海外短剧系统开发:技术架构与性能优化实践
  • Windsurf 插件正式登陆 JetBrains IDE:让 AI 直接在你的 IDE 里“打工”
  • 西门子 S7-200 SMART PLC 核心指令详解:从移位、上升沿和比较指令到流水灯控制程序实战
  • 【重要通知】ChatGPT Plus将于9月16日调整全球充值定价,低价区将被弃用,开发者如何应对?
  • 跨省跨国监控难题破解:多层级运维的“中国解法”