algorithm
maximum-level-sum-of-a-binary-tree
二叉树按层相加,相加结果最大的是哪个一层
public int maxLevelSum(TreeNode root) {
TreeNode empty = new TreeNode();
int maxVal = root.val;
int maxLevel = 1;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
queue.offer(empty);
TreeNode tmp;
int curVal = 0;
int curLevel = 1;
while (!queue.isEmpty()) {
tmp = queue.poll();
curVal += tmp.getVal();
if (tmp != empty) {
if (tmp.getLeft() != null) {
queue.offer(tmp.getLeft());
}
if (tmp.getRight() != null) {
queue.offer(tmp.getRight());
}
} else {
if (queue.isEmpty()) {
break;
}
queue.offer(empty);
if (maxVal < curVal) {
maxVal = curVal;
maxLevel = curLevel;
}
curVal = 0;
curLevel++;
}
}
return maxLevel;
}
review
graph-databases-machine-learning 大数据下,使用图作为数据存储,更加直观容易拓展,相对于sql这种表格式数据结构也更容易让个人用户加入数据探索中来
tips
无
share
geohash使用
// 精度维度注意顺序
127.0.0.1:6379> geoadd hubei 114.2776173 30.4942722 gaoxinqu
(integer) 1
127.0.0.1:6379> geoadd hubei 114.112782 30.617632 dongxihu
(integer) 1
127.0.0.1:6379> geoadd hubei 114.347250 30.512046 hongshanjiedao
(integer) 1
127.0.0.1:6379> GEODIST hubei shouyigongyuan hongshanjiedao
"4440.2022"
127.0.0.1:6379> geopos hubei shouyigongyuan gaoxinqu dongxihu hongshanjiedao
1) 1) "114.31445270776748657"
2) "30.54025071787851431"
2) 1) "114.2776152491569519"
2) "30.49427341076927434"
3) 1) "114.11278277635574341"
2) "30.61763322015197986"
4) 1) "114.34725075960159302"
2) "30.51204687553855166"
// 取单个坐标范围的坐标,WITHDIST-返回距离,注意数量和顺序
127.0.0.1:6379> GEORADIUS hubei 114.345958 30.510043 2 km WITHDIST ASC
1) 1) "hongshanjiedao"
2) "0.2550"
127.0.0.1:6379> GEORADIUS hubei 114.345958 30.510043 10 km WITHDIST ASC
1) 1) "hongshanjiedao"
2) "0.2550"
2) 1) "shouyigongyuan"
2) "4.5167"
3) 1) "gaoxinqu"
2) "6.7803"
127.0.0.1:6379> GEORADIUS hubei 114.345958 30.510043 5 km WITHDIST ASC
1) 1) "hongshanjiedao"
2) "0.2550"
2) 1) "shouyigongyuan"
2) "4.5167"