一个最小堆
1.二叉树 用数组来实现,在树上面对TreeNode 编号
id:0,1,2,3,4,5
1,3,5,10,11,15
leftson = 2*id+1
rightson = 2*id+2
parent = (id-1)/2
堆push元素的话,直接在数组后面加一个index就可以了,push的时间复杂度O(logn),pop操作就是和和末尾交换元素,之后pop出去末尾一个元素
id:0,1,2,3, 4, 5 ,6
1,3,5,10,11,15,0
三道题 heapfy Trapping the Rain Water I,II