LeetCode_131: Palindrome Partition 回文字符串

回文字符串问题可以看做是一个划分链问题,这个和算法导论中介绍动态规划时的矩阵链乘法是一样的,找到一个最优的划分方案。很自然的想到动态规划来得到一个回文串的真值表,然后就是要列举出所有的情况,回溯法可以做到,自然而然的DP+BackTracking解决掉。…

LeetCode_010: 正则表达式匹配 与 044: 通配符匹配

最近在攻略动态规划,在做正则表达式匹配的时候看错了题目,发现写出来的是通配符匹配,后来看了下什么是正则表达式才明白过来。这两道题都是有很多解法的题目,按照标签刷题目还是限制了自己的思路,一开始就没有往其它地方想。事实上,通配符匹配用贪心算法(可以看做一种特殊的动态规划)更合适。…

Scikit-learn学习笔记(一)环境搭建

Scikit-learn在机器学习领域已经无人不晓了,如此给力的工具应该早点接触到的。sk-learn既不支持深度学习,也不支持GPU加速,sk-learn是专门用来搞定传统机器学习的,这一点要给深度学习玩家提醒下。这篇博客主要讲Python环境的搭建,博主使用的是pycharm+anaconda,pycharm是python的IDE,支持断点调试和工作区变量查看,anaconda用来解决各种包的依赖关系,scikit-learn已经集成在其中了,安装之后检查包的更新就可以了。…

LeetCode_023: Merge k Sorted Lists

        一种结合链表和优先队列的优雅解法,巧妙之处在于使用优先队列出队元素,可以直接得到下一个入队元素,算法复杂度是O(nlgn)。联想到如果不是优先队列结构,那么我们可以使用同样的解法,只是我们需要在队列中记录每个元素属于哪一行,而使用链表结构就避免了这种麻烦。…

LeetCode_126: Word Ladder II

最近总是Rank到很难的题目,这次遇到了LeetCode中通过率最低的题目。这道题目是一个图相关的问题,同时牵扯到很多坑,很多细节,即使思路正确稍不注意内存超出,时间超出都是常事儿,自己做出来还是需要废一番功夫的。博主写了BFS算法的大概就放弃了,后面翻了几份代码,找了个最简洁的 ,这里也只能讲解一下别人的代码了。…