随笔分类 - 模拟
摘要:2018-09-07 09:03:14 一、Merge Intervals 问题描述: 问题求解: 二、Insert Interval 问题描述: 问题求解: 本题的问题描述中明确的说明了,本题的给出条件中的intervals是已经排序好的,并且是没有overlapping的,因此在后续的求解过程中
阅读全文
摘要:2018-08-13 22:50:51 问题描述: 问题求解: 首先如果m 和 n不相等,那么必然会有至少一对奇偶数,那么必然末尾是0。 之后需要将m 和 n将右移一位,直到m 和 n相等。 本质上,本题就是求m 和 n的最长preSubNum。
阅读全文
摘要:2018-08-13 17:35:09 一、Partition Equal Subset Sum 问题描述: 问题求解: 二分和本质上其实是一个背包问题,就是问是否存在一种情况,使得可以填满一个sum/2的背包。 二、Partition to K Equal Sum Subsets 问题描述: 问题
阅读全文
摘要:2018-08-11 23:50:30 问题描述: 问题求解: 解法一、归并排序 解法二、快速排序
阅读全文
摘要:2018-08-07 11:12:01 问题描述: 问题求解: 使用一个链表模拟栈,最后的状态一定是左侧全部是负值,表示的是向左飞行,右侧的全部是正值,表示的是向右飞行。 遍历整个数组,对于每个读到的数字,如果是正值则直接加入链表中,如果是负值,则需要判断链表中末尾的数字如果也是负值,则表示目前链表
阅读全文
摘要:2018-08-04 20:47:43 问题描述: 问题描述: 本题需要的是将一个数组划分成子序列,保证每个子序列是连续的,并且长度要大于等于3。 解题思路是使用贪心算法,首先对数组中的数字进行计数,然后遍历数组,对每个数字,如果说candidate中有这个数字,那么意味着它可以和之前的子序列组成更
阅读全文
摘要:2018-07-31 17:28:42 问题描述: 问题求解: 很容易想到的是Brute Force,也就是枚举所有可能的pairs,这种解法的时间复杂度为O(n ^ 2),由于本题的数据规模较大,会TLE。那么就要对算法进行改进了。 这里用到的解法是Two Pointers,左右各设置一个指针,l
阅读全文
摘要:2018-07-30 22:05:52 问题描述: 问题求解: 本题个人感觉还是挺有意思的,题目要求的是最长的文件路径,其实是需要keep tracking路径长度,如果出现文件则需要进行比较,看是否为当前的最大长度。 难点就在于如何keep tracking,不妨将文件的路径旋转90度,那么就可以
阅读全文
摘要:2018-07-29 17:08:15 问题描述: 问题求解: 字符串替换的问题有个技巧就是从右向左进行替换,这样的话,左边的index就不需要考虑变动了。
阅读全文
摘要:2018-07-18 11:19:19 一、Minimum Window Substring 问题描述: 问题求解: public String minWindow(String s, String t) { String res = ""; if (t.length() > s.length())
阅读全文
摘要:2018-07-15 19:23:08 Valid Anagram Valid Anagram 问题描述: 问题描述: 可以使用map来记录各个字符出现的个数,在O(n)的时间复杂度内完成,当然也可以使用排序算法在O(nlogn)完成。 Find All Anagrams in a String F
阅读全文
摘要:2018-07-15 10:33:46 问题描述: 问题求解: 其实是一个解空间遍历的问题,每个节点可以扩展8条边,由此问题变成了图中的最短路径问题,由于本题中路径长度为1,所以最高效的解法就是使用BFS进行层次遍历。 想到使用图来做其实问题已经就解决的一大半,剩下的基本就是宽搜的模板了。
阅读全文
摘要:2018-07-08 13:24:31 一、525. Contiguous Array 问题描述: 问题求解: 我们都知道对于subarray的问题,暴力求解的时间复杂度为O(n ^ 2),问题规模已经给出是50000量级,显然只能是O(n),至多O(nlogn)的复杂度。 本题使用DP和滑动数组都
阅读全文
摘要:2018-07-02 09:48:48 问题描述: 问题求解: 方法一、问题给了规模n = 2000,也就是说用BF在O(n^2)的时间复杂度可以过,因此,第一个方法就是BF,但是需要注意的是这里已经非常擦边了,所以需要对常数项进行优化。 方法二、这个方法就比较巧妙了,首先使用Set进行去重,然后对
阅读全文
摘要:2018-07-01 19:13:56 54. Spiral Matrix 54. Spiral Matrix 问题描述: 问题求解: 螺旋输出问题,每次输出圈即可,需要注意的有两点: (1)边界问题:这里可以取m,n的一半向上取整;(需要特别注意在取整前要除一个double类型的数,否则则会自动向
阅读全文
摘要:2018-06-29 22:56:24 问题描述: 问题求解: 本题是一条字符串问题,且是求Optimal,自然最初想到的是使用DP来进行求解,但是问题就是如果采用DP的话,前一个状态也太多了,和替换了多少了k值相关,因此从这个角度来说,使用DP来处理本题是不太合适的。 那么,另一个处理的手段滑动窗
阅读全文
摘要:2018-04-28 14:10:33 问题描述: 问题求解: 个人觉得这是一条很好的模拟题,题目大意就是给了一个单线程的处理器,在处理器上跑一个函数,但是函数里存在调用关系,可以是调用其他函数,也可以是递归的调用自己,通过logs给出每个函数的开始和结束时间,问每个函数的实际运行时间是多少。log
阅读全文
摘要:2018-04-23 14:34:09 一、Odd Even Linked List 问题描述: 问题求解: 如果思考从swap角度来解决问题就会陷入一个误区,其实直接使用链表的指针分别构造出odd和even即可。 二、Reorder List 问题描述: 问题求解: step1:找到中点 step
阅读全文
摘要:2018-04-22 19:59:52 Sum系列的问题是Leetcode上的一个很经典的系列题,这里做一个简单的总结。 167. Two Sum II - Input array is sorted 167. Two Sum II - Input array is sorted 问题描述: 问题求
阅读全文
摘要:2018-04-12 21:20:30 编辑距离是针对二个字符串(例如英文字)的差异程度的量化量测,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串。编辑距离可以用在自然语言处理中,例如拼写检查可以根据一个拼错的字和其他正确的字的编辑距离,判断哪一个(或哪几个)是比较可能的字。DNA
阅读全文