程序员面试金典——11.8维护x的秩

Solution1:我的答案。垃圾算法。。。

class Rank {
public:vector<int> getRankOfNumber(vector<int> A, int n) {// write code hereint temp_sum = 0;vector<int> res;for (int i = 0; i < A.size(); i++) {temp_sum = 0;for(int j = 0; j < A.size() && j != i; j++) {if(A[j] <= A[i])temp_sum++;}res.push_back(temp_sum);}return res;}
};

Solution2:
/*
用一个二叉查找树来维护当前已经插入的数组,小于等于该节点插入左子树内,
大于插入右子树内,递归调用。
这样,每次查询小于等于某个节点的节点数,分三种情况讨论,递归调用:
1.当前节点的值等于插入的节点的值,那么返回该节点的左子树数目就等于秩
2.当前节点的值大于插入的节点的值,那么递归调用左子树(因为该节点的本身
及其右子树都对秩没影响)
3.当前节点的值小于插入的节点的值,那么当前节点的所有左子树加上本身都是
该插入节点的秩,
然后加上插入的节点在右子树中的秩之和为改插入节点的秩

注意:1.只用记录当前节点的左子树的个数,2.每次都是先插再找出秩,所以每
次查找不会出现不在树中的情况。
*/
可是c++的STL中木有现成的二叉树结构可用,自己写的话,增加很多代码量。。。所以用

【To Do!】程序员面试金典——11.8维护x的秩相关推荐

  1. 【动态规划】程序员面试金典——11.7叠罗汉I

    程序员面试金典--11.7叠罗汉I 首先我来批判一下这个题目出的真是不咋滴,后来的人按理说应该在上面.但此题的意思是求最长递增子序列,即后来的人在下面,完全是为了出题而出题... 参考博客: [1]h ...

  2. 程序员面试金典——11.6矩阵元素查找

    程序员面试金典--11.6矩阵元素查找 Solution1:我的答案.和剑指offer上的题目类似,复杂度是O(m+n)O(m+n)O(m+n). class Finder { public:vect ...

  3. 程序员面试金典——11.5找出字符串

    程序员面试金典--11.5找出字符串 Solution1:我的答案.加强版的二分查找,嘿嘿嘿 class Finder { public:int findString(vector<string ...

  4. 程序员面试金典——11.3元素查找

    程序员面试金典--11.3元素查找 Solution1:我的答案 二分查找,貌似不咋好啊 class Finder { public:int findElement(vector<int> ...

  5. 程序员面试金典——11.2变位词排序

    程序员面试金典--11.2变位词排序 Solution1: 参考网址:https://www.nowcoder.com/profile/845063/codeBookDetail?submission ...

  6. 【To Do】程序员面试金典——18.11最大子方阵

    程序员面试金典--18.11最大子方阵 Solution1:我的答案.最笨的方法,时间复杂度是O(n3)O(n3)O(n^3) class SubMatrix { public:int maxSubM ...

  7. 【程序员面试金典】面试题 10.11. 峰与谷

    [程序员面试金典]面试题 10.11. 峰与谷 题目描述 解题思路 题目描述 描述:在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等 ...

  8. 程序员面试金典 - 面试题 10.11. 峰与谷

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 在一个整数数组中,"峰& ...

  9. 《程序员面试金典》解题目录(更新完毕)

    题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...

最新文章

  1. sketch生成android代码,java – 从Android Processing Sketch保存图像
  2. 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别
  3. linux下的加密解密学习
  4. STM32 - 定时器的设定 - 基础- 07 - 6-step PWM generation - 6步长PWM的产生 - COM Event的解释
  5. java struts2下载zip_Struts2多文件下载
  6. java constructors_[译]understanding constructors
  7. python解析xml选用什么模块_什么是适合Python的XML流解析器?
  8. ContentProvider跨进程通信
  9. 常用思维模式大全(上)
  10. 台式计算机没有外放声音,台式电脑外放无声音怎么办
  11. 如何解决back order中,confirmed qty can't be change的问题
  12. 读了7年通信最后还是转了码,这值得吗?
  13. linux公社_又一个Linux发行版宣告死亡!曾经是最好的桌面版BSD操作系统
  14. design contains shelved or modified (but not repoured) polygons. the result....继续铺铜还是报警,解决方案如下:
  15. #10019. 「一本通 1.3 例 2」生日蛋糕
  16. STM32驱动_cc2420
  17. Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)
  18. Eclipse Scala环境的配置
  19. BiSeNet V3: Bilateral Segmentation Network with Coordinate Attention for Real-time Semantic Segment
  20. Scheduled定时任务的使用

热门文章

  1. WindowsAPI概览
  2. ESP8266_APP连接试验
  3. Laplacian of Gaussian (LOG) 高斯拉普拉斯算子
  4. ubuntu 安装php gd,如何在ubuntu上安装php5-gd?
  5. linux3.10高端内存,Linux内存管理之高端内存映射
  6. Python机器学习、深度学习库总结(内含大量示例,建议收藏)
  7. oracle内连接时列的值是null,Oracle SQL - 比较空值时的JOIN性能
  8. java 十亿数据去重_如何在有限的内存限制下实现数十亿级手机号码去重
  9. xml转对象 jdom_JDOM从对象编写XML文件示例
  10. 如何使用InetAddress在Java中获取IP地址