题目要求

1
传入两棵树的根节点,判断这两棵树是否相同

此题的核心就在于如何遍历树。一旦我们解决了这个问题,题目也就迎刃而解了。
下面就来介绍一下 关于树的一些基本知识

阅读全文 »

题目要求

1
2
3
4
5
6
在一个有序的数组中,找到一个目标值,返回该值得下标。若没有找到该值,则返回该值顺序插入的下标
例如,
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
阅读全文 »

题目要求

1
给一个数组,其中数组在下标i处的值为A[i],坐标(i,A[i])和坐标(i,0)构成一条垂直于坐标轴x的直线。现任取两条垂线和x轴组成四边形容器。问其中盛水量最大为多少?
阅读全文 »

题目要求

1
判断一个数字是否是回数,不能同使用自然数生成string或数组那样的方式实现

回数的定义:一个自然数,如果该自然数从左向右读和从右向左读都是一样的数,则这个数为回数(隐藏条件,回数不可以为负数)

阅读全文 »

这是罗马数字转为十进制数的后序
题目要求:将十进制数字转化为罗马数字,数值范围是[1,3999]
罗马数字转化为十进制数的博客中,我简单的介绍了一下如何将罗马数字转化为十进制数字。在这道题目里,我们需要进一步了解十进制数转换为罗马数字的协议

  1. 罗马单个数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)
  2. 可以被减去的值只有I(1)、X(10)、C(100),且每个值最多只可以减去一次
  3. 左减时不可以跨位数,例如99不能被表示为IC,而是XCIX
  4. 多个相同字母连续出现时表示相加,但是字母不能重复出现超过4次

综上所述,个位上的数可以由I、V、X表示出来,同理,十位上的树可以由X、L、C表示,百位上可以由C、D、M表示,千位上则为M(数字不超过3999)
所以可以分别对整数的每一位上的值进行计算,得出相应的罗马数字值,并最后合并为最终得罗马数字

阅读全文 »

题目要求

假设有一个二叉树,和一个目标值,如果存在一条从根节点到叶节点的路径,该路径上所有节点上的值的和恰好等于该目标值,则返回true,否则返回FALSE
方法的输入为根节点和目标值
例如:假设有一颗二叉树如下,目标值为22,结果返回true,因为存在一条路径5->4->11->2其和为22

1
2
3
4
5
6
7
      5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
阅读全文 »
0%