博客
关于我
leetocode--------962. 最大宽度坡[1]
阅读量:200 次
发布时间:2019-02-28

本文共 984 字,大约阅读时间需要 3 分钟。

给定一个整数数组 A是元组 (i, j),其中  i < j 且 A[i] <= A[j]。这样的坡的宽度为 j - i

找出 A 中的坡的最大宽度,如果不存在,返回 0 。

示例 1:输入:[6,0,8,2,1,5] 输出:4 解释: 最大宽度的坡为 (i, j) = (1, 5): A[1] = 0 且 A[5] = 5.

示例 2:输入:[9,8,1,0,1,9,4,0,4,1] 输出:7 解释: 最大宽度的坡为 (i, j) = (2, 9): A[2] = 1 且 A[9] = 1.

提示:

  1. 2 <= A.length <= 50000
  2. 0 <= A[i] <= 50000

思路,第一次错误理解了题目以上,理解成了i后面的比它大的数据的个数。这里使用mutiset进行排序,然后从头到后进行分析,统计这个元素i后面元素的个数。同时删除这个元素。

代码为

class Solution {public:    int maxWidthRamp(vector
& A) { multiset
si; multiset
::iterator it; int n=A.size(); for(int i=0;i

上述主要erase的用法,在mutiset中,如果删除rease(value)是删除所有的=value的。删除某个用法是si.erase(it)

正确的代码 

记下数组的元素的位置,然后进行排序,排序后某个元素所在的位置之前的肯定比在它前面的元素小,所以只要找出比它小的原标号最小的即可。

class Solution {	public:		typedef struct {			int x;			ind id;		} Node;		static bool cmp(Node a,Node b) {			if(a.x==b.x) return a.id
& A) { int n=A.size(); if(n==0) return -1; int imax=0; vector
vn(n); vector
as(n),bb(n); for(int i=0; i

 

转载地址:http://qpki.baihongyu.com/

你可能感兴趣的文章
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>