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

LeetCode周赛——384

1.修改矩阵(模拟)

在这里插入图片描述

class Solution {
public:vector<vector<int>> modifiedMatrix(vector<vector<int>>& matrix) {int n = matrix.size();int m = matrix[0].size();vector<int> ans(m);for(int i = 0; i < m; i++)for(int j = 0; j < n; j++)ans[i] = max(ans[i], matrix[j][i]);for(int i = 0; i < m; i++)for(int j = 0; j < n; j++)if(matrix[j][i] == -1) matrix[j][i] = ans[i];return matrix;}
};

2.匹配模式数组的子数组数目 I(暴力)

在这里插入图片描述

class Solution {
public:int countMatchingSubarrays(vector<int>& nums, vector<int>& pattern) {int n = nums.size();int m = pattern.size();int ans = 0;//枚举numsfor(int i = 0; i < n - m; i++){int f = 1;//枚举patternfor(int j = 0; j < m; j++){如果不满足,那就跳到下一个if(nums[i + j + 1] > nums[i + j] && pattern[j] != 1) f = 0;if(nums[i + j + 1] == nums[i + j] && pattern[j] != 0) f = 0;if(nums[i + j + 1] < nums[i + j] && pattern[j] != -1) f = 0;}if(f) ans++;}return ans;}
};

3.回文字符串的最大数量(贪心)

在这里插入图片描述

class Solution {
public:int maxPalindromesAfterOperations(vector<string>& words) {int n = words.size();vector<int> cnt(26, 0);for(int i = 0; i < n; i++)for(char c : words[i])//统计每个字符有多少个cnt[c - 'a']++;int sum = 0, ans = 0;//统计有多少对字符for(int i : cnt) sum += i / 2;//从小到大排序,允许重复数字multiset<int> s;//插入每个字符串的长度for(int i = 0; i < n; i++) s.insert(words[i].size());for(int i : s){//计算剩余多少对字符int t = sum - i / 2;//如果剩余的对数大于等于0,那就更新答案和对数if(t >= 0){sum = t;ans++;}}return ans;}
};

4.匹配模式数组的子数组数目 II(KMP)

在这里插入图片描述

class Solution {
public:int countMatchingSubarrays(vector<int>& nums, vector<int>& pattern) {int n = nums.size();int m = pattern.size();vector<int> s(n), ne(n);//将匹配串转化为01串,用kmp匹配for(int i = 1; i < n; i++)s[i - 1] = nums[i] > nums[i - 1] ? 1 : nums[i] == nums[i - 1] ? 0 : -1;//求next模板串ne[0] = -1;for(int i = 1, j = -1; i < m; i++){while(j >= 0 && pattern[i] != pattern[j + 1]) j = ne[j];if(pattern[i] == pattern[j + 1]) j++;ne[i] = j;}int ans = 0;//kmp匹配,但是s里只有n-1个元素for(int i = 0, j = -1; i < n - 1; i++){while(j >= 0 && s[i] != pattern[j + 1]) j = ne[j];if(s[i] == pattern[j + 1]) j++;if(j == m - 1){ans++;j = ne[j];}}return ans;}
};
http://www.lryc.cn/news/299519.html

相关文章:

  • C#,巴都万数列(Padonve Number)的算法与源代码
  • NSSCTF Round#18 RE GenshinWishSimulator WP
  • 鸿蒙系统对应安卓版本
  • 算法-16-并查集
  • 【C/C++】2024春晚刘谦春晚魔术步骤模拟+暴力破解
  • Java运算符和表达式
  • 波奇学Linux:软硬链接
  • HTTP网络通信协议基础
  • Java实现河南软件客服系统 JAVA+Vue+SpringBoot+MySQL
  • 【小沐学GIS】基于C++QT绘制三维数字地球Earth(OpenGL)
  • 如何生成生成一个修仙世界的狗血短剧剧本
  • 【MIMO】
  • ZooKeeper分布式锁
  • WPF是不是垂垂老矣啦?平替它的框架还有哪些
  • 浅析Linux追踪技术之ftrace:Tracepoint
  • python ftp文件断点续传 并判断ftp文件下载完成
  • SpringBoot+Vue3 完成小红书项目
  • springboot集成Sa-Token及Redis的redisson客户端
  • SQL世界之命令语句Ⅴ
  • Springboot拦截器中跨域失效的问题、同一个接口传入参数不同,一个成功,一个有跨域问题、拦截器和@CrossOrigin和@Controller
  • WordPress如何自建txt文本经典语录并随机显示一句话经典语录?
  • Java中JVM常用参数配置(提供配置示例)
  • 图论与图数据应用综述:从基础概念到知识图谱与图智能
  • 知识碎片-SpringBoot统一返回结果和捕获异常
  • Open-FWI代码解析(1)
  • 移动机器人激光SLAM导航(五):Cartographer SLAM 篇
  • 第四篇【传奇开心果微博系列】Python微项目技术点案例示例:美女颜值判官
  • Python学习之路-初识爬虫:requests
  • Linux 常用的命令
  • 假期作业 10