摘要:
前篇戳:dp入门——由分杆问题认识动态规划 导语 刷过一些算法题,就会十分珍惜“方法论”这种东西。Leetcode上只有题目、讨论和答案,没有方法论。往往答案看起来十分切中要害,但是从看题目到得到思路的那一段,就是绕不过去。楼主有段时间曾把这个过程归结于智商和灵感的结合,直到有天为了搞懂Leetco 阅读全文
摘要:
题目 Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. For example, given the 阅读全文
摘要:
题目 Given an integer n, generate all structurally unique BST's (binary search trees) that store values 1 ... n. Example: Input: 3 Output: [ [1,null,3,2 阅读全文
摘要:
简介 如果你常刷leetcode,会发现许多问题带有Dynamic Programming的标签。事实上带有dp标签的题目有115道,大部分为中等和难题,占所有题目的12.8%(2018年9月),是占比例第二大的问题。 如果能系统地对dp这个topic进行学习,相信会极大地提高解题速度,对今后解决实 阅读全文
摘要:
回溯法是一类递归算法,算法中每次只构建答案的一部分,在构建的过程中如果意识到答案不符合要求,会立刻将这一部分答案及它的所有子答案抛弃,以提高效率。
递归算法通常比较难想,容易出现做一个题时“每次都是新题”的情况。如果能够稍微记住一点简单的套路,认识到一个算法的重要点,以及文中几个题目的共性和区别,就能大大提高解算法的速度。 阅读全文
摘要:
简介 用一个可伸缩的窗口遍历字符串,时间复杂度大致为O(n)。适用于“寻找符合某条件的最小子字符串”题型。 题目 链接 求某字符串T中含有某字符串S的所有字符的最小子字符串。如果不存在则返回"". 算法 用左右两个指针维护一个窗口。 WHY IT WORKS 设想一个最naive的算法如何遍历T中的 阅读全文
摘要:
THE SHORT STORY 只要两步就可以拥有以下页面。(猫是会眨眼的哦) 第一步:到你的博客后台管理,将博客皮肤设置为darkgreentrip 第二步: 分别粘贴以下代码到“页面定制CSS代码”和“页首Html代码”中(注意,不要勾选“禁用模板默认CSS”) /* 页面定制css代码 */ 阅读全文
摘要:
你拎着包子走到座位,办公室一如既往的嘈杂。对面的项目经理对着电话,气急败坏地问对方周末为什么不能来加班。你叹了口气,打开了学习笔记,上面显示“已有两周未更新”。todo list全是等待打勾的小方框。你顺序看下来:算法,操作系统,Java语言,C语言,web基础……计划非常丰满,可是周末你去陪朋友喝 阅读全文
摘要:
Cloneable这个接口设计得十分奇葩,不符合正常人的使用习惯,然而用这个接口的人很多也很有必要,所以还是有必要了解一下这套扭曲的机制。以下内容来自于对Effective Java ed 2. item 11的整理。 Cloneable接口 首先,Cloneable接口中并没有方法。它的存在意义一 阅读全文
摘要:
花了三天在windows上搞openJDK,对bash本来就不熟,加上各种莫名依赖和脚本里的bug,身心俱疲。最后make all的时候产生一个莫名其妙的错误说什么有warning且-Werror置为了true,死活没google到-Werror是什么鬼,只好作罢了。 今天本菜鸟突然想起来,朕还有U 阅读全文