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

网站建设怎么入账市场调研与分析

网站建设怎么入账,市场调研与分析,做亚马逊网站费用,wordpress 直播提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 今日学习目标一、算法题1.下一个更大元素 II2.接雨水3.柱状图中最大的矩形 今日心得学习及参考书籍 今日学习目标 下一个更大元素 II(503) …

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 今日学习目标
  • 一、算法题
    • 1.下一个更大元素 II
    • 2.接雨水
    • 3.柱状图中最大的矩形
  • 今日心得
  • 学习及参考书籍


今日学习目标

下一个更大元素 II(503)
接雨水(42)
柱状图中最大的矩形(84)

一、算法题

1.下一个更大元素 II

题目:
给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。

数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。

示例 1:

输入: nums = [1,2,1]
输出: [2,-1,2]
解释: 第一个 1 的下一个更大的数是 2;
数字 2 找不到下一个更大的数;
第二个 1 的下一个最大的数需要循环搜索,结果也是 2。

代码:

class Solution {
public:vector<int> nextGreaterElements(vector<int>& nums) {vector<int> result(nums.size(), -1);if (nums.size() == 0) return result;stack<int> st;st.push(0);for (int i = 1; i < nums.size() * 2; i++) { // 模拟遍历两边nums,注意一下都是用i % nums.size()来操作if (nums[i % nums.size()] < nums[st.top()]) st.push(i % nums.size());else if (nums[i % nums.size()] == nums[st.top()]) st.push(i % nums.size()); else {while (!st.empty() && nums[i % nums.size()] > nums[st.top()]) {result[st.top()] = nums[i % nums.size()];st.pop();}st.push(i % nums.size());}}return result;}
};

2.接雨水

题目:
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

示例 1:
在这里插入图片描述

输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。

代码:

class Solution {
public:int trap(vector<int>& height) {if (height.size() <= 2) return 0; // 可以不加stack<int> st; // 存着下标,计算的时候用下标对应的柱子高度st.push(0);int sum = 0;for (int i = 1; i < height.size(); i++) {if (height[i] < height[st.top()]) {     // 情况一st.push(i);} if (height[i] == height[st.top()]) {  // 情况二st.pop(); // 其实这一句可以不加,效果是一样的,但处理相同的情况的思路却变了。st.push(i);} else {                                // 情况三while (!st.empty() && height[i] > height[st.top()]) { // 注意这里是whileint mid = st.top();st.pop();if (!st.empty()) {int h = min(height[st.top()], height[i]) - height[mid];int w = i - st.top() - 1; // 注意减一,只求中间宽度sum += h * w;}}st.push(i);}}return sum;}
};

3.柱状图中最大的矩形

题目:
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。

求在该柱状图中,能够勾勒出来的矩形的最大面积。

示例 1:
在这里插入图片描述

输入:heights = [2,1,5,6,2,3]
输出:10
解释:最大的矩形为图中红色区域,面积为 10

代码:

class Solution {
public:int largestRectangleArea(vector<int>& heights) {int result = 0;stack<int> st;heights.insert(heights.begin(), 0); // 数组头部加入元素0heights.push_back(0); // 数组尾部加入元素0st.push(0);// 第一个元素已经入栈,从下标1开始for (int i = 1; i < heights.size(); i++) {if (heights[i] > heights[st.top()]) { // 情况一st.push(i);} else if (heights[i] == heights[st.top()]) { // 情况二st.pop(); // 这个可以加,可以不加,效果一样,思路不同st.push(i);} else { // 情况三while (!st.empty() && heights[i] < heights[st.top()]) { // 注意是whileint mid = st.top();st.pop();if (!st.empty()) {int left = st.top();int right = i;int w = right - left - 1;int h = heights[mid];result = max(result, w * h);}}st.push(i);}}return result;}
};

今日心得

比想象中的难。

学习及参考书籍

代码随想录

http://www.dtcms.com/wzjs/232581.html

相关文章:

  • 中小企业网站建设方案达州seo
  • 做网赌网站得多少钱今日头条(官方版本)
  • 网络科技公司网站制作系统优化的例子
  • 公司的独立网站百度自然搜索排名优化
  • 计算机学软件开发哪个学校好恩施seo整站优化哪家好
  • ps制作网站首页教程seo推广网址
  • 济南品牌网站建设公司小红书搜索关键词排名
  • 网站的流量有什么用网络广告公司排名
  • 做交易网站最近新闻摘抄
  • 做网站最省钱在线推广企业网站的方法有
  • 伍壹捌网站建设企业网站seo优化
  • 如何创立网站 优帮云seo资源网站 排名
  • 常德网站建设多少钱5118站长工具箱
  • 郑州手机网站建设公司网络营销的基本功能
  • 爱客源网站建设优化推广
  • 珠海 网站建设和推广网站seo平台
  • 如何做网站 frontpage域名查询网站入口
  • 长沙银狐做网站b百度关键词搜索怎么收费
  • 网站建设是否属于技术合同微博营销软件
  • 人与马做的网站新郑网络推广公司
  • 郑州网站建设华久阳东网站seo
  • 榆林公司网站建设爱站seo工具包
  • 推广网站文案网站优化网络推广seo
  • 网站代理如何做如何优化推广中的关键词
  • 做建网站百度网址大全免费下载
  • wordpress 改系统5年网站seo优化公司
  • 深圳做网站推广的公司又一病毒来了比新冠可怕
  • 网站建设公司如何盈利谷歌推广代理商
  • 资料网站怎么做的驾校推广网络营销方案
  • 做外贸需要做个英文网站吗谷歌排名优化