分类: LeetCode OJ

评分 0, 满分 5 星
0 票

开个map映射,开个set查找,使用strtok进行word分片。

评分 0, 满分 5 星
0 票

贪心,用栈维护,在看到Stack之前几乎无想法.. 栈中存放到当前位置为止的最优解,对于新到来的元素,如果其小于栈顶元素并且栈顶元素不是最后一次出现并且新元素未在栈中出现,就可以弹栈了,直至新元素可以加入或者判断出不需要不加入。

Comments Off on [LeetCode]Remove Duplicate Letters

评分 0, 满分 5 星
0 票

由于不确定元素的范围,为了保证程序的正确运行同时节省空间开销,首先对原数组进行离散化。由于BIT可以快速统计在当前位置之前的并且不大于当前元素的元素的数目,而题目要求统计右侧区间因此就需要把离散化后的数组反转后再进行更新和统计,统计完结果之后再把结果反转。

评分 5.00, 满分 5 星
1 票

来看一个很有意思的题目.. 首先是闪过脑海的几个想法:1. 枚举消除顺序?阶乘太过暴力;2. 枚举状态是否消除?指数太过暴力;3. 贪心?不具备最优子结构;4. 枚举子结构然后在子结构中找最优解.. 可以一试。 // 终于考完了分布式数据库.. 发现每一个考试之前的夜晚,我都会脑洞大开,突破天际 ..  

评分 0, 满分 5 星
0 票

这道题目可以换好多种描述方式,比如...在无向无环图中找出一些点,使得其他所有点到这些点的最长距离最小,或者任意选定某点作为树的根,使得树的高度最小...显然答案存在于图的最长路上或者说树的直径上,当直径节点数目为奇数时,答案为路径中间结点,为偶数时,答案为路径中间两个节点。

Comments Off on [LeetCode]Minimum Height Trees

评分 5.00, 满分 5 星
2 票

一个可以很好地考察DP思想和编程技巧的题目。对于每一天来讲有三种状态,买、卖、闲,转移的时候除了考虑状态本身,还要考虑状态之间的时序问题,即需要再对每一种状态添加状态转移的标志位。用当前天数做模2运算可以使各状态间很好的互斥开来。

评分 0, 满分 5 星
0 票

好久不写树状数组,几乎要忘记了...这个题目是树状数组和线段树在点修改区间查询上的典型应用。只是感觉函数的参数列表在这里设计的太不合理了,需要重新开一个空间对原数组进行复制才能在非构造函数中调用。还需要注意的就是树状数组下标从1开始,否则在进行lowbit操作的时候有可能陷入死循环。// 魂淡室友看我写题就不等我了,竟然忍心让我凌晨回宿舍,真是魂淡啊...

评分 0, 满分 5 星
0 票

给大一的上完C语言上机课心力交瘁..刷道题压压惊..首先可以用hash table来做,但是要注意删除元素的顺序。

Comments Off on [LeetCode]Bulls and Cows

评分 0, 满分 5 星
0 票

动规,sum[i][j]表示从(0, 0)到(i, j)所有元素的和,开辟辅助空间的情况下O(n^2)可以完成转移,比如sumr[i][j]表示对于某一行i,从第0列到第j列所有元素的和;查询O(1),容斥一下就可以了。下面的程序在空间上其实还可以优化,可优化的地方在程序中做出了注释,很简单,就不做修改了。

评分 0, 满分 5 星
0 票

最好的方式就是O(n)预处理,O(1)询问了吧。没必要使用树状数组和线段树。

Comments Off on [LeetCode]Range Sum Query - Immutable