【LeetCode】HOT 100(7)

news/2024/11/8 12:33:01/

题单介绍:

精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。

目录

题单介绍:

题目:42. 接雨水 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:46. 全排列 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:42. 接雨水 - 力扣(Leetcode)

题目的接口:

class Solution {
public:int trap(vector<int>& height) {}  
};

解题思路:

 这道题又是动态规划的题目,但是也可以不用动态规划做,

这里我用的是单调栈:

遍历数组,如果遇到小的值就入栈,如果遇到比栈顶大的值就开始算雨水面积,

让栈内的有效数据保持单调递减的状态,

这个思路的核心就是找出右边更高的柱子,开始结算雨水,

然后以这个柱子为新的左柱子,继续往右边找相对更高的柱子。

代码入下:

代码:

class Solution {
public:int trap(vector<int>& height) {int ans = 0;stack<int> st;for(int i = 0; i < height.size(); i++) { //遍历while(!st.empty() && height[st.top()] < height[i]) { //遇到较大的值int top = st.top();st.pop();if(st.empty()) break; //如果是栈内只有一个值的情况,就跳过(没法接雨水)int l = st.top();int r = i;int h = min(height[r], height[l]) - height[top]; //矮柱子的高度 - 中间的高度 ans += (r - l - 1) * h;}st.push(i);}return ans;}  
};

过过过过啦!!!!

题目:46. 全排列 - 力扣(Leetcode)

题目的接口:

class Solution {
public:vector<vector<int>> permute(vector<int>& nums) {}
};

解题思路:

这道题其实就是经典的搜索题目,

或者说是搜索的入门题目,

学搜索必刷题型,全排列,

我之前在蓝桥杯刷题的时候也有写深度优先搜索相关的博客,

感兴趣的可以去看一下,

这里我就不废话,直接上代码:

代码:

class Solution {
public:vector<int> v;vector<vector<int>> vv;vector<vector<int>> permute(vector<int>& nums) {dfs(nums);return vv;}
private:void dfs(vector<int>& nums) {if(v.size() == nums.size()) {vv.push_back(v);return;}for(int i = 0; i < nums.size(); i++) {if(nums[i] != 99) { //这边是巧妙的记录已经使用过的值,因为排列中只允许一个数出现一次int used = nums[i];v.push_back(nums[i]);nums[i] = 99;dfs(nums);nums[i] = used;v.pop_back();}}}
};

过过过过啦!!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~


http://www.ppmy.cn/news/311903.html

相关文章

基于ADME的分子过滤和 lead-likeness标准

T002 基于ADME的分子过滤和 lead-likeness标准 项目来源于TeachOpenCADD 本文目标 在药物设计的背景下&#xff0c;重要的是通过例如它们的物理化学性质来过滤候选分子。 在这个教程中&#xff0c;从 ChEMBL ( Talktorial T001 )获得的化合物将按照 Lipinsik 的五法则进行…

Unity 实现使用邮箱登陆注册功能

有一下功能 1、账号密码本地存储 2、支持忘记密码 修改密码 3、通过邮箱验证码 注册 4、注册码有时效限制 这只是个小demo&#xff0c;只注重实现功能 下面是代码 using System; using System.Collections; using System.Collections.Generic; using System.Net; using Syste…

个人邮箱登陆,邮箱登录入口有哪些?有移动办公app吗?

刚刚入职新的公司&#xff0c;和同事下班路上看到领导要求半小时内邮件报送某个数据&#xff0c;但路上没有带电脑不能登陆邮箱&#xff0c;无法按时报送。看着同事着急的样子&#xff0c;让他试试我的移动办公app——TOM随心邮&#xff0c;无论何时何地都可以分分钟完成邮件发…

手机怎么登陆群邮件服务器,139邮箱登陆登录入口 中国移动139手机邮箱注册图文教程...

现在很多小伙伴都在用中国移动的139邮箱&#xff0c;手机号就是邮箱账号&#xff0c;方便又好记&#xff0c;通过短信或者手机上网等方式&#xff0c;可以随时收、发邮件;免费接收邮件到达提醒&#xff0c;不会担心错过重要邮件;每月话费账单准时投递到邮箱&#xff0c;消费情况…

163vip邮箱登陆入口,怎么登录163邮箱?

电子邮箱中&#xff0c;既适合企业家、高专层管理、初创型公司等办公用&#xff0c;也适合个人商务使用的就是VIP邮箱了。VIP邮箱品牌有TOM邮箱、网易、新浪等&#xff0c;那么登录163邮箱要怎么登录呢&#xff1f;。 163vip邮箱登陆入口——电脑客户端 第一步&#xff1a;打…

微信企业邮箱登陆入口在哪?企业邮箱忘记密码怎么修改?

微信企业邮箱怎么登陆&#xff1f;那么微信有没有企业邮箱呢&#xff1f;是有的&#xff0c;就是TOM企业邮箱。在职场办公中&#xff0c;很多重要的通知及正式文件都是通过邮件进行下发传达的&#xff0c;因此邮箱在我们的工作中有非常重要的作用。 微信企业邮箱登陆入口在哪&…

微信邮箱登录入口,企业微信企业邮箱,企业邮箱登陆入口

打车、购物可使用微信完成&#xff0c;现在 微信邮箱登录入口 第一步&#xff0c;在微信里找到TOM邮箱的“随心邮” 第二步&#xff0c;点击推送消息&#xff0c;或者下方任意按钮&#xff0c;登录企业邮箱账号密码 第三步&#xff0c;输入你的账号密码点绑定&#xff0c;绑…

登录邮箱怎么登录?163手机邮箱登录入口在这里

公司分配了邮箱&#xff0c;一定要知道的是邮箱登录入口&#xff0c;这样方便办公。那登录邮箱怎么登录呢&#xff1f;TOM邮箱登录的几种方式你了解么&#xff1f;163手机邮箱登录入口在哪里呢&#xff1f;了解这些之后在你使用邮箱时会变得更加顺畅&#xff0c;一起来看看吧&a…