2019.06.15-2019.06.22

Algorithm

1079. Letter Tile Possibilities

class Solution {
    public int numTilePossibilities(String tiles) {
        int [] chars = new int[26];
        for (char c: tiles.toCharArray()) {
            chars[c - 'A']++;
        }

        return dfs(chars);
    }

    private int dfs(int[] chars) {
        int sum = 0;
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == 0) {
                continue;
            }
            sum++;
            chars[i]--;
            sum += dfs(chars);
            chars[i]++;
        }
        return sum;
    }
}

Review

https://www.developer.com/java/data/what-is-the-java-priority-queue.html
介绍了PriorityQueue,这个队列比较少用到。顾名思义是一个优先级队列,支持自定义排序规则,内部逻辑是通过维护一个二叉小根堆实现,保证每次队列头都是最优先(小)的元素。
一开始误解这个类是全排序的队列,发现并不是,只是首个元素保证队列中最小。

Tip

线上导线下数据库工具失效,或者要排队的情况下,可以从线上库导出SQL语句,再导入线下

Share

Java 8 Streams map()
语言的语法特性越用会越熟练,最近在有意使用Java8 API中的stream,先从功能强大的map()方法开始。学到的最复杂的是从一个bean的list转化成另一个bean的list。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 1,985评论 0 13
  • Java常见面试题总结 @Date 2016.06.22 Java基础知识 1.Java 中应该使用什么数据类型来...
    voltric阅读 1,113评论 0 2
  • 本来是准备看一看Spring源码的。然后在知乎上看到来一个帖子,说有一群**自己连Spring官方文档都没有完全读...
    此鱼不得水阅读 6,964评论 4 21
  • 转载自:Java集合框架实例 1- 介绍 集合是程序和语言的基本思想。应用程序通常都会应用到集合,例如雇员的信息,...
    01_小小鱼_01阅读 446评论 0 1
  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981阅读 16,079评论 2 11