arts1

145 阅读1分钟

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使用

redis官方文档

google地图经纬度

// 精度维度注意顺序
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"