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

算法训练第五十九天

503. 下一个更大元素 II - 力扣(LeetCode)

代码:

class Solution {
public:vector<int> nextGreaterElements(vector<int>& nums) {vector<int> nums1(nums.begin(), nums.end());nums.insert(nums.end(), nums1.begin(), nums1.end());// 用新的nums大小来初始化resultvector<int> result(nums.size(), -1);if (nums.size() == 0) return result;// 开始单调栈stack<int> st;st.push(0);for (int i = 1; i < nums.size(); i++) { if (nums[i] < nums[st.top()]) st.push(i); else if (nums[i] == nums[st.top()]) st.push(i);else { while (!st.empty() && nums[i] > nums[st.top()]) {result[st.top()] = nums[i];st.pop();}st.push(i);}}// 最后再把结果集即result数组resize到原数组大小result.resize(nums.size() / 2);return result;}
};

42. 接雨水 - 力扣(LeetCode)

代码:

class Solution {
public:int trap(vector<int>& height) {stack<int> st;st.push(0);int area = 0;for(int i = 1;i < height.size();i++){if(height[i] <= height[st.top()])st.push(i);else {while(!st.empty() && height[i] > height[st.top()]){int mid = st.top();st.pop();if(!st.empty()){int h = min(height[i],height[st.top()]) - height[mid];int w = i - st.top() - 1;area += h * w;}}st.push(i);}}return area;}
};

84. 柱状图中最大的矩形 - 力扣(LeetCode)

代码:

class Solution {
public:int largestRectangleArea(vector<int>& heights) {heights.insert(heights.begin(),0);heights.push_back(0);stack<int> st;st.push(0);int area = 0;for(int i = 1;i < heights.size();i++){if(heights[i] >= heights[st.top()])st.push(i);else{while(!st.empty() && heights[i] < heights[st.top()]){int mid = st.top();st.pop();if(!st.empty()){int h = heights[mid];int w = i - st.top() - 1;area = max(area,h * w);}}st.push(i);}}return area;}
};

http://www.lryc.cn/news/166116.html

相关文章:

  • 二叉树oj题
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:1-20)
  • TableConvert-免费在线表格转工具 让表格转换变得更容易
  • 伦敦金实时行情中的震荡
  • 蓝桥杯打卡Day7
  • Mobile Vision Transformer-based Visual Object Tracking
  • HTTP反爬困境
  • 从零开始探索C语言(九)----函数指针与回调函数
  • 智慧工厂的基础是什么?功能有哪些?
  • LeetCode 238. 除自身以外数组的乘积
  • 点击劫持概念及解决办法
  • 【Spring】手动实现Spring底层机制-问题的引出
  • Java - List 去重,获取唯一值,分组列出所属对应集合
  • 离散高斯抽样(Discrete Gaussian Sampling)
  • Elasticsearch:什么是生成式人工智能?
  • 责任链模式让我的代码精简10倍?
  • Draw软件安装下载
  • uniapp代码混淆ios上架43问题
  • Linux目录遍历函数
  • 数据库-理论基础
  • 【已解决】src/spt_python.h:14:20: 致命错误:Python.h:没有那个文件或目录
  • 基于Face++网络爬虫+人脸融合算法智能发型推荐程序——深度学习算法应用(含Python及打包exe工程源码)+爬虫数据集
  • Jetson nano嵌入式平台配置ip记录
  • 前端中的跨域请求及其解决方案
  • SpringBoot2.0(mybatis-plus初始使用)
  • 游戏视频录制软件对比,哪款最适合你的需求?
  • 耐蚀合金连续油管最新版 学习记录
  • LoGoNet:基于局部到全局跨模态融合的精确 3D 目标检测
  • Python 多线程、线程池、进程池
  • 深入浅出了解华为端到端交付流程的概念和5个关键点