力扣题目训练(5)

2024年1月29日力扣题目训练

  • 2024年1月29日力扣题目训练
    • 345. 反转字符串中的元音字母
    • 349. 两个数组的交集
    • 350. 两个数组的交集 II
    • 96. 不同的二叉搜索树
    • 97. 交错字符串
    • 44. 通配符匹配

2024年1月29日力扣题目训练

2024年1月29日第五天编程训练,今天主要是进行一些题训练,包括简单题3道、中等题2道和困难题1道,今天总算把进度赶上了,虽然有很多不会的,但是总体还是有进步的。

345. 反转字符串中的元音字母

链接: 反转元音字母
难度: 简单
题目:

题目描述

运行示例:
运行示例

思路:
与之前的反转字符串类似,无非是这里需要先记录下元音字母位置再反转。
代码:

class Solution {
public:string reverseVowels(string s) {vector<int> res;for(int i = 0; i < s.size(); i++){if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u'||s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U'){res.push_back(i);}}int n = res.size();for(int i = 0; i <  n/ 2; i++){char c = s[res[i]];s[res[i]] = s[res[n-i-1]];s[res[n-i-1]] = c;}return s;}
};

349. 两个数组的交集

链接: 数组交集
难度: 简单
题目:
题目描述
运行示例:
运行示例
思路:
利用哈希表存储在第一个数组中出现的数字,然后和第二个数组中的元素进行判断。
代码:

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_map<int,int> map;vector<int> ans;for(int i = 0; i < nums1.size(); i++){if(map[nums1[i]] == 0)  map[nums1[i]] = 1;}for(int i = 0; i < nums2.size(); i++){if(map[nums2[i]] == 1 && !(std::find(ans.begin(), ans.end(), nums2[i]) != ans.end()))   ans.push_back(nums2[i]);}return ans;}
};

350. 两个数组的交集 II

链接: 数组的交集出现次数
难度: 简单
题目:
题目描述
运行示例:
运行示例
思路:
这道题与上一道题有相似之处,我都是用的哈希表,但是这道题题目我用了两个哈希表分别记录两个数组中元素出现的次数,然后进行对比得到结果。
官方的方法是用一个哈希表,通过改变哈希表中元素出现的次数的值来得到结果。
在这里插入图片描述
代码:

class Solution {
public:vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {unordered_map<int,int> map1,map2;vector<int> ans;for(int i = 0; i < nums1.size(); i++){map1[nums1[i]]++;}for(int i = 0; i < nums2.size(); i++){map2[nums2[i]]++;}for(auto p:map1){int key = p.first;int count = p.second;if(map2[key] != 0){int n = count > map2[key]?map2[key]:count;cout<<n<<endl;for(int i = 0; i < n; i++){ans.push_back(key);}}}return ans;}
};

官方代码

class Solution {
public:vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {if (nums1.size() > nums2.size()) {return intersect(nums2, nums1);}unordered_map <int, int> map;for(int num: nums1){map[num]++;}vector<int> intersection;for(int num:nums2){if(map[num]){intersection.push_back(num);map[num]--;if(map[num] == 0){map.erase(num);}}}return intersection;}
};

96. 不同的二叉搜索树

链接: 二叉搜索树
难度: 中等
题目:
题目描述
运行示例:
运行示例
思路:
这道题与昨天的训练题类似,但是这道题只用求种类数相对简单,我们可以利用动态规划求当前节点左右自述的种类数再相乘即可得到结果。
代码:

class Solution {
public:int numTrees(int n) {vector<int> dp(n+1,0);dp[0] = 1;dp[1] = 1;for(int i = 2; i <= n; i++){for(int j = 1; j <= i; j++){dp[i] += dp[j-1] * dp[i-j];}}return dp[n];}
};

97. 交错字符串

链接: 交错字符串
难度: 中等
题目:
题目描述

运行示例:
运行示例
思路:
我本来用的是回溯的但是时间超过了,看了官方发现这是一道比较典型的动态规划问题,dp[i][j]表示s1的前i个字符与s2的前j个字符组成的字符串与s3的前i+j-1个字符之间的状态。
在这里插入图片描述
代码:

class Solution {
public:bool isInterleave(string s1, string s2, string s3) {int n1 = s1.size();int n2 = s2.size();int n3 = s3.size();if(n1+n2 != n3) return false;vector<vector <bool>> dp(n1+1,vector<bool>(n2+1,false));  dp[0][0] = true;for(int i = 0; i <= n1; i++){for(int j = 0; j <= n2; j++){int k = i + j -1;if(i > 0) dp[i][j] = dp[i][j] || dp[i-1][j] && s1[i-1] == s3[k];if(j > 0) dp[i][j] = dp[i][j] || dp[i][j-1] && s2[j-1] == s3[k];}}return dp[n1][n2];}
};

44. 通配符匹配

链接: 通配符匹配
难度: 困难
题目:
题目描述
运行示例:
运行示例

思路:
这个题与上一道题交错字符串类似,都是求匹配所以使用动态规划算法。
代码:
置换:

class Solution {
public:int firstMissingPositive(vector<int>& nums) {int n = nums.size();for(int i = 0; i < n; i++){while(nums[i] > 0 && nums[i] <= n && nums[nums[i] -1 ] != nums[i]){swap(nums[nums[i] - 1], nums[i]);} }for(int i = 0; i < n; i++){if(nums[i] != i+1){return i + 1;}}return n + 1;}
};

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

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

相关文章

【云上建站】快速在云上构建个人网站3——网站选型和搭建

快速在云上构建个人网站3——网站选型和搭建 一、网站选型二、云市场镜像方式一&#xff1a;方式二&#xff1a;1. 进入ECS实例详情页面&#xff0c;点击停止&#xff0c;确保更换操作系统的之前ECS实例处于已停止状态&#xff0c;点击更换操作系统&#xff0c;进行镜像配置。2…

如何写好论文——(5)文献综述的两个基本点

写论文的要点就是要明确我们的研究目标 在我们的引言中要论证我们研究目标的合理性 论证通常要通过文献综述来完成 做好文献综述的两个基本要点如下&#xff1a; 一、有所学 在文献综述中展示与我们现有研究相关的所有知识&#xff0c;有一个全面的了解 包括和我们研究问…

84、介绍:操作系统中内存申请的性能

本节简单的介绍一下在操作系统中的内存申请机制。 有些同学看到这可能会有疑惑,我们不是在学习 AI吗,为什么要介绍内存申请的知识呢? 因为无论是 AI,还是其他的计算学科,都离不开以下几个方面的内容:算法 + 操作系统 + 芯片 + 数据。 AI 作为这几年爆火的学科,不是突…

【LeetCode-435】无重叠区间(贪心)

题目链接 题目简介 给定一个区间的集合&#xff0c;找到需要移除区间的最小数量&#xff0c;使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”&#xff0c;但没有相互重叠。 示例 1: 输入: [ [1,2], [2,3], [3,4…

深入解析可解释性人工智能(XAI):拓展智能决策的透明边界

引言&#xff1a; 近年来&#xff0c;人工智能技术的飞速发展引发了社会各界对其应用和影响的关注。随着AI系统在日常生活中的广泛应用&#xff0c;人们对于这些系统的决策过程提出了更多的疑问。为了增强对AI系统的信任&#xff0c;科学家们努力推动可解释性AI&#xff08;XAI…

appsmith安装手记:4.Sql server数据库容器安装

appsmith安装好&#xff0c;那就可以看是练练手。 数据当然是来自数据库&#xff0c;那就连接局域网中现成的一台数据库服务器试试&#xff0c;但是连接数据库的时候一直错误。 找到/home/appsmith/backend 目录下的日志&#xff0c;看到了错误&#xff1a; [rootlocalhost bac…

uniapp如何引入uview组件?

目录 1.引入前准备 2.在项目中引入组件 1.mian.is文件 2.uni.scss 文件 3.App.vue文件 4.pages.json 文件 3.测试成功 1.引入前准备 为了方便我们在制作项目的过程中&#xff0c;方便使用模板组件&#xff0c;快速开发。我们可以选择引入组件。 在uni-app中使用uView组件…

day22打卡

day22打卡 235. 二叉搜索树的最近公共祖先 递归法时间复杂度&#xff1a;O(N)&#xff0c;空间复杂度&#xff1a;O(N) class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if(root->val > p->val && ro…

蓝桥杯《剪格子》

题目描述 历届试题 剪格子 时间限制&#xff1a;1.0s 内存限制&#xff1a;256.0MB 问题描述 如下图所示&#xff0c;3 x 3 的格子中填写了一些整数。 10 1 52 20 30 1 1 2 3 我们沿着图中的星号线剪开&#xff0c;得到两个部分&#xff0c;每个部分…

基于SSM的高校班级同学录网站设计与实现(有报告)。Javaee项目,ssm项目。

演示视频&#xff1a; 基于SSM的高校班级同学录网站设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm项目。 项目介绍&#xff1a; Javaee项目&#xff0c;采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

双非本科准备秋招(12.2)—— 力扣栈与队列

复习一下栈和队列的基础知识&#xff0c;刷几道题上上手。 1、102. 二叉树的层序遍历 广度优先遍历嘛&#xff0c;每次拓展一个新结点&#xff0c;就把新结点加入队列&#xff0c;这样遍历完队列中的元素&#xff0c;顺序就是层序遍历。 class Solution {public List<Lis…

我国个体工商户达1.24亿户,支撑近3亿人就业

官媒报道截至2023年底&#xff0c;全国登记在册个体工商户1.24亿户&#xff0c;占经营主体总量的67.4%&#xff0c;支撑近3亿人就业。 什么概念&#xff1f;我帮大家理解一下&#xff0c;2024年了&#xff0c;现在中国5个人里面就有一个人不用上班&#xff0c;而是自己当起了老…

Linux 内核学习1. 编译并启动一个最小化系统

Linux 内核学习1. 编译并启动一个最小化系统 一、Linux内核简介1. Linux 内核介绍2. Linux内核主要的作用 二、编译内核主要的步骤三、编译过程1. 准备环境2. 安装编译工具和依赖项3. 下载源码4. 配置内核配置功能选项命令行配置图形化配置默认配置 5. 编译内核6. 构建轻量化工…

C语言-算法-树状数组

统计和 题目描述 给定一个长度为 n ( n ≤ 100000 ) n(n\leq 100000) n(n≤100000)&#xff0c;初始值都为 0 0 0 的序列&#xff0c; x ( x ≤ 100000 ) x(x\leq 100000) x(x≤100000) 次的修改某些位置上的数字&#xff0c;每次加上一个数&#xff0c;然后提出 y ( y ≤…

mysql 允许其他ip访问

1.改表法。 可能是你的帐号不允许从远程登陆&#xff0c;只能在localhost。这个时候只要在localhost的那台电脑&#xff0c;登入mysql后&#xff0c;更改 “mysql” 数据库里的 “user” 表里的 “host” 项&#xff0c;从"localhost"改称"%" //执行以下…

#翻转牛群

题目描述 农夫约翰偶尔会遇到无聊的青少年&#xff0c;他们晚上去他的农场&#xff0c;把奶牛们弄翻。一天早上&#xff0c;他醒来发现事情又发生了——他的 N∗N 头奶牛排列成了一个完美的 N∗N 方阵&#xff08;1≤N≤10)&#xff0c;但他发现其中一些现在已经被弄翻了&…

学习使用Flask模拟接口进行测试

前言 学习使用一个新工具&#xff0c;首先找一段代码学习一下&#xff0c;基本掌握用法&#xff0c;然后再考虑每一部分是做什么的 Flask的初始化 app Flask(__name__)&#xff1a;初始化&#xff0c;创建一个该类的实例&#xff0c;第一个参数是应用模块或者包的名称 app…

免费使用支持离线部署使用的 txt2video 文本生成视频大模型(Text-to-Video-Synthesis Model)

免费使用支持离线部署使用的 txt2video 文本生成视频大模型(Text-to-Video-Synthesis Model)。 文本生成视频大模型(Text-to-Video-Synthesis Model)是一种基于深度学习技术的人工智能模型&#xff0c;它可以将自然语言文本描述转换为相应的视频。即通过输入文本描述&#xff…

MySQL 函数参考手册(MySQL 数值函数)

目录 MySQL ABS() 函数 MySQL ACOS() 函数 MySQL ASIN() 函数 MySQL ATAN() 函数 MySQL ATAN2() 函数 MySQL AVG() 函数 MySQL CEIL() 函数 MySQL CEILING() 函数 MySQL COS() 函数 MySQL COT() 函数 MySQL COUNT() 函数 MySQL DEGREES() 函数 MySQL DIV 函数 My…

远程连接服务器:Ping通但SSH连接失败的解决办法

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言常见问题影响SSH的因素本地影响因素防火墙设置网络配置文件 远程主机影响因素放行…