【LeetCode】HOT 100(5)

news/2024/11/25 16:31:20/

题单介绍:

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

目录

题单介绍:

题目:31. 下一个排列 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:32. 最长有效括号 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:31. 下一个排列 - 力扣(Leetcode)

题目的接口:

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

解题思路:

这道题的解题思路其实也不复杂,

如果降序数组,就直接排序就行,

如果数组不规律,从后往前找出比后一个数小的数,记录位置,

然后再找遍历数组,在这个位置到数组结尾这个区间找出比标记位大的数,并交换,

然后将这个区间排成升序,这样就是一个字典序最小的组合了。

代码如下:

代码:

class Solution {
public:void nextPermutation(vector<int>& nums) {int cur = nums.size() - 2; //从后往前找出比后一个数小的数while(cur >= 0 && nums[cur] >= nums[cur + 1]) cur--;if(cur < 0) sort(nums.begin(), nums.end()); //如果是降序数组,直接排序就行else {int pos = nums.size() - 1;while(nums[pos] <= nums[cur]) pos--; //在这个区间找到比标记位更大的数swap(nums[pos], nums[cur]); //交换sort(nums.begin() + cur + 1, nums.end()); //排序之后,这段就是字典序最小的排列}}
};

过过过过啦!!!!

题目:32. 最长有效括号 - 力扣(Leetcode)

题目的接口:

class Solution {
public:int longestValidParentheses(string s) {}
};

解题思路:

这道题我看完之后,马上想到的思路就是用滑动窗口,

结果题解个个都是动态规划,真让人火大,

等我学会动态规划,定叫他有来无回。

总之我就用滑动窗口来做了,

思路如下:

遍历数组,

如果出现右括号的数量大于左括号,证明这段括号就不合法了,

如果出现右括号的数量等于左括号, 就更新最长的序列。

如果左括号的数量一直大于右括号,可能会漏掉一些情况,比如说:

" ( ( ( ) ) " 这段序列应该更新最长序列为4,但是因为出现这种情况,导致遍历完之后更新不了。

解决方案:

我们正向遍历的时候,将所有右括号数量大于左括号的情况都遍历完了,

那么只要我们反向遍历,就能够实现把所有左括号数量大于右括号的情况遍历完,

所以只需要让现有的逻辑再走一遍反向遍历即可,这就是这个思路的核心。

  代码如下:

代码:

class Solution {
public:int longestValidParentheses(string s) {int left = 0, right = 0, ans = 0;for(int i = 0; i < s.size(); i++) {if(s[i] == '(') left++; //左括号数++else { // if(s[i] == ')')if(right < left) right++; //右括号数++else left = right = 0; //右括号数 > 左括号数,重新计数} //如果:右括号数 = 左括号数,更新ansif(left == right && (left + right) > ans) ans = left + right;}left = right = 0; //清空,反着再走一遍,代码一模一样,我就不写注释了for(int i = s.size() - 1; i >= 0; i--) {if(s[i] == ')') left++;else {if(right < left) right++;else left = right = 0;}if(left == right && (left + right) > ans) ans = left + right;}return ans;}
};

过过过过啦!!!!

写在最后:

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

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

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


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

相关文章

实用技巧:数据可视化综述

作为一名数据产品经理&#xff0c;不仅需要了解数据产品设计与研发的流程&#xff0c;数据可视化更是必不可少的技能之一。 通过数据可视化&#xff0c;数据产品经理可以更加直观地呈现数据信息&#xff0c;让用户更容易理解、解读数据。 可视化图形选择 1 设计的目的 在实…

电视盒子与机顶盒哪个好?当贝MAX 1才是最值得买的电视盒子

很多人都认为电视盒子和机顶盒实际是同一个东西&#xff0c;感觉没有必要去买一个新的电视盒子&#xff0c;但是这么想是错误的&#xff0c;其实电视盒子跟机顶盒还是有很大的区别的&#xff01;今天就来说说电视盒子与机顶盒的区别是什么&#xff1f;附赠一款目前最值得买的电…

网络电视html5软件,网络电视软件哪个好

网络电视软件哪个好 常用在线视频的评测&#xff0c;让你选择适合自己的网络电视。近来网络电视发展迅猛&#xff0c;电视用户逐渐向网络电视转变&#xff0c;然而网络电视不止一款&#xff0c;要怎么选择适合自己的呢~ 一、 PPS影音 这玩意号称第一家P2P播放器...资源也比较丰…

电视网与计算机网的区别是什么意思,网络电视和智能电视有什么区别 ?哪个好?...

时下&#xff0c;电视产业高速发展&#xff0c;智能化已然成为了当前智能彩电行业的必然趋势。随着传统电视机的没落&#xff0c;智能电视与网络电视作为彩电行业重要的组成部分&#xff0c;都逐步融入了我们的生活之中。然而在事物理解层面&#xff0c;用户们还存在着误区&…

2022电视盒子推荐 家用电视盒子哪个好

一、当贝智慧盒子Z1 Pro 配置参数一览&#xff1a; ● 画质&#xff1a;支持8K 24fps解码、HLG/HDR10 ● 硬件&#xff1a;Amlogic A311D处理器&#xff0c;内存4GB存储容量64GB ● 功能&#xff1a;支持隔空手势、魔法同屏、体感游戏、AI健身、魔法相机、视频会议等 编辑…

Element UI 改变主题色

本地修改&#xff0c;编译失效 参考自&#xff1a;Element UI 改变主题色_element ui修改主题色_猫子&#xff0a;的博客-CSDN博客 1、 Element - The worlds most popular Vue UI framework 2、然后下载相应的主题包&#xff1a;style.zip 解压得到&#xff1a;fonts文件…

华为鸿蒙电视购买,搭载鸿蒙OS系统!华为智慧屏新品来袭:价格3000+起

搭载鸿蒙OS系统&#xff01;华为智慧屏新品来袭&#xff1a;价格3000起 2021-05-10 18:44:04 17点赞 8收藏 33评论 直达链接 此前曾有爆料称&#xff0c;华为将于5月19日举办新品发布会&#xff0c;带来华为儿童手表4X新耀款、华为体脂秤3 Pro、华为新款笔记本电脑等。 现在华为…

儿童类应用测试方法

儿童类学习应用软件越来越多&#xff0c;如果我们有机会测试此类APP&#xff0c;那么主要需要注意些什么地方呢&#xff1f;举几个例子如下&#xff1a; 保证功能操作范围&#xff0c;小朋友的操作范围可能没有成人准确多点触控&#xff0c;小朋友可能会同时两只手在屏幕上操作…