算法: 数组种的逆序对

题目: 在数组中的两个数字如果前面一个数字大于后面的数字,则这两

个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。

例如在数组{7,5,6,4} 中,一一共存在5 个逆序对,分别是(7,6)、(7,5)、
(7,4)、(6,4)和(5,4)。

解法1: 扫码整个数组. 每扫描到一个数字的时候. 逐个比较当前数字的后面数字. 时间复杂度为 O(n^2)

解法2:
待续

题目: 统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,

3,3,3,3,4,5}和数字3,由于3 在这个数组中出现了4 次,因此输出4。

该题可以根据二分查找第一个出现当前数字的index. 和 最后一个出现该数字的index 最后 ilast - first + 1就是结果

题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结

点依次经过的结点(含根、叶结点) 形成树的一条路径,最长路径的长度
为树的深度。

int TreeDepth (BinaryTreeNode* pRoot)
  if (pRoot == NULL)
      return 0;
  int nLeft = TreeDepth (pRoot->m_pLeft) ;
  int nRight =  TreeDepth (pRoot->m_pRight) ;
return  (nLeft > nRight) ? (nLeft + 1) :(nRight + 1);
    原文作者:TimberTang
    原文地址: https://www.jianshu.com/p/22acc8de0170
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞