https://codility.com/programmers/challenges/upsilon2012

求笛卡尔树的高度,可以用单调栈来做。

维持一个单调递减的栈,每次进栈的时候记录下它之后有多少元素,就是以它为根的子树的高度。出栈的时候再更新一次供新进栈者使用。

int solution(vector<int> &A) {A.push_back(1000000001); // an element larger than any one in Aint size = A.size();vector<int> elem_stack;vector<int> ht_stack;int tailHt = 0;for (int i = 0; i < size; i++) {bool done = false;while (not done) {if (elem_stack.size() == 0|| elem_stack.back() > A[i]) {elem_stack.push_back(A[i]);ht_stack.push_back(tailHt);tailHt = 0;done = true;} else { // pop upelem_stack.pop_back();tailHt = max(ht_stack.back(), tailHt) + 1;ht_stack.pop_back();}}}return ht_stack.back();
}

  

转载于:https://www.cnblogs.com/lautsie/p/3984035.html

*[codility]CartesianSequence相关推荐

  1. [codility]Min-abs-sum

    https://codility.com/demo/take-sample-test/delta2011/ 0-1背包问题的应用.我自己一开始没想出来."首先对数组做处理,负数转换成对应正数 ...

  2. Codility:Titanium 2016 challenge:BracketsRotation

    发现codility上很难找到自己的代码,所以来存一下. 用的一种水法,不知道是结论对还是数据水. 处理出所有极大合法串最后就只剩)))((((状的括号,然后枚举右端点,左端点单调. 但是未匹配点数量 ...

  3. [codility]Grocery-store

    http://codility.com/demo/take-sample-test/hydrogenium2013 用Dijkstra求最短路径,同时和D[i]比较判断是不是能到.用了优先队列优化,复 ...

  4. codility Nesting

    Question:codility Lesson7 Nesting My Answer: def solution(S):if len(S) % 2 == 1:return 0num = 0for e ...

  5. codility上的问题 (22)

    问题描述: 用1 * 1, 1 * 2的矩形覆盖一个n行m列的矩形,问有多少种方法. 数据范围 : n [1..10^6],  m [ 1..7] 要求复杂度: 时间  O(log(n) * 8 ^m ...

  6. Codility算法测验(三)

    接上篇博文,第三个题目 A non-empty zero-indexed array A consisting of N positve integers is given. A pair of in ...

  7. codility上的问题(26) Hydrogenium 2013

    题目,挺无聊的.一个裸的最短路.n个点,你住在0,要去买东西,每个点有一个关门时间,问能最早买到食物的时间.有两点注意 (1)有重边 (2) 原图是dicrect连接...但不是有向边,被这个误导了. ...

  8. 【题解】【数组】【Prefix Sums】【Codility】Genomic Range Query

    A non-empty zero-indexed string S is given. String S consists of N characters from the set of upper- ...

  9. [codility]Distinct

    最近在学scala语言,scala代码如下: import scala.collection.JavaConversions._object Solution {def solution(A: Arr ...

  10. Codility每周一课:P7.3 Nesting

    P7.3 Nesting Determine whether a given string of parentheses (single type) is properly nested. P7.3 ...

最新文章

  1. 自己写的程序密码功能 ------数字功能
  2. python GIL :全局解释器
  3. php %3c php 攻击,web 攻击靶机解题过程
  4. 固特异发布人工智能球形轮胎:自动变形、自我修复、超级灵活
  5. 矿难让显卡压了那么多货咋办?NV如是说
  6. 积跬步以至千里_“积跬步以至千里”——第三届世界老年旅游大会推进会昨日召开...
  7. 首次结算和汇总不一致
  8. asp向不同的用户发送信息_.Net Core 和 .Net Framework的不同
  9. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_06-freemarker基础-遍历map数据...
  10. 网络爬虫:Scrapy爬虫框架
  11. python计算代码运行时间
  12. 【离散数学笔记】逻辑运算之吸收律
  13. NER项目--github--A Unified MRC Framework for Named Entity Recognition
  14. Python中不为人知的四个特性
  15. 绘制渐变图形--Canvas的基本操作
  16. 盘点最常用的几款linux服务器管理面板
  17. Kafka3.x核心速查手册三、服务端原理篇-2、Broker选举机制
  18. ubuntu下linux:curl使用ftp获取服务器上指定目录的所有文件集合以及下载
  19. 三菱R系列PLC程序 全部采用ST语言编写,内部使用函数块和结构体,程序思路清晰
  20. Java校验银行卡号的合法性以及根据银行卡号校验银行卡所属的银行名称是否一样?

热门文章

  1. python -m的作用
  2. Error response from daemon: OCI runtime exec failed: exec failed: container_linux.go:345:
  3. python实现递归和非递归求两个数最大公约数、最小公倍数
  4. 2021-06-17 compareAndSet 比较交换 CAS
  5. 计算机中submit commit区别
  6. 【Django 2021年最新版教程23】2个日期相减 计算天数 xxxx-xx-xx格式
  7. 创建phpinfo.php
  8. oracle优化策略一般包括,一些很实用的Oracle数据库优化策略总结篇
  9. Java中的浅克隆和深克隆
  10. 基于springboot+vue的二手商城(闲置物品交易)(前后端分离)