本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
如何查找完全二叉树最后一层的最右边的结点
题目:
如何查找完全二叉树最后一层的最右边的结点。
解决方案:
需要分两种情况考虑。
(1)如果完全二叉树是用数组表示的,则直接取数组的最后一个元素。
(2)如果完全二叉树是用指针表示的:
可以如下解决:
a. 从根节点开始,如果右子树存在,则每次先遍历右子树,如果右子树不存在,则访问左子树;
b. 如果右子树是叶子节点(即当前节点没有孩子节点),则该节点即所 ...
计算点在哪些四边形内
题目:
一个平面中,有很多正四边形,大小不一,任意四边形之间可以有重叠部分,如下图所示
现在有2000个点,如何快速定位这些点分别属于哪些四边形区域?
解决方案:
采用区域分割+hash查找的方法。
1. 预处理阶段:
X将四边形按照左边进行排序,然后逐一按照X轴划分区域,如图:
然后,将每一个区域的左边界和右边界作为key,所包含的四边形作为valu ...
随机概率发生器
题目:
已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器,使得它构造0和1的概率均为1/2
解决方案:
这是随机概率发生器的典型题目。
由于需要产生1/2,而用1位0,或1位1无法产生等概率,因此,考虑将随机数扩展成2位:
00 p*p
01 p*(1-p)
10 (1-p)*p
11 (1-p)*(1-p)
有上述分析知道 ...
如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
题目:
写一个函数判断一个int类型的数组是否是有效的。 所谓有效是指:假设数组大小为n,那么这个int数组里的值为0~n-1之间的数,并且每个数只能出现一次,否则就是无效数组。 例如[5,3,1,4,2,0]是有效的,[5,3,5,1,2,0]是无效的,[5,3,6,1,2,0]是无效的。
解法思路一:置换的思想
用一个temp来存储被置换出来的值,例如数组a:
5 ...
如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
题目:
写一个函数判断一个int类型的数组是否是有效的。 所谓有效是指:假设数组大小为n,那么这个int数组里的值为0~n-1之间的数,并且每个数只能出现一次,否则就是无效数组。 例如[5,3,1,4,2,0]是有效的,[5,3,5,1,2,0]是无效的,[5,3,6,1,2,0]是无效的。
解法思路一:置换的思想
用一个temp来存储被置换出来的值,例如数组a:
5 ...