随笔分类 -  LeetCode刷题总结

摘要:1 之前一直在想回溯到底是一个怎么样的过程, 一直想的也很迷 在画了一个简单的草图之后, 发现, 我们不必要知道每一层到底经历了怎么样的回溯, 所有的回溯肯定是从最底层的递归(即终止条件到达时)开始回溯的 所以, 我们只需要确定单层的逻辑, 然后进行回溯即可 2 另外, 有回溯的地方, 好像一定是有 阅读全文
posted @ 2021-03-08 14:20 0龙行者0 阅读(43) 评论(0) 推荐(0) 编辑
摘要:GET{ 注意事项(){ 1 本题其实也是考察递归, 也可以用层序遍历来解决; 2 但凡是牵扯到对容器进行遍历的情况, 一点要考虑容器内元素数量为空的情况, 因为为空时, 不是会造成对容器遍历的影响, 而是容器为空时的情况下对容器的处理可能会和不为空时不一样, 这个一点要注意 3 本题中就会牵扯到子 阅读全文
posted @ 2021-03-07 19:36 0龙行者0 阅读(47) 评论(0) 推荐(0) 编辑
摘要:以下总结完全是自我感觉, 目前遇到的几个题目会是这样的原型 1 如果我们只是想要收集递归中生成的每一个结果集, 就类似于遍历所有的节点, 然后每一个节点会对应一个值, 这样的形式的话, 递归函数的返回值设置为空即可, 但是我们需要准备一个容器, 或者作为递归函数的参 数依次传递下去, 或者设置成一个 阅读全文
posted @ 2021-03-07 19:01 0龙行者0 阅读(588) 评论(0) 推荐(0) 编辑
摘要:GET{ 方法(){ 1 再一次了解了递归的使用, 但是对于递归的参数和返回值的运用不够了解 2 对于递归终止条件的判断不够全面 3 再一次被递归的精简与深邃折服, 这一题的递归解法让我见识到递归的魅力 4 更深入了解了迭代法的本质, 以及其搭配队列和栈的使用, 关于两者的思考见: 迭代与队列的搭配 阅读全文
posted @ 2021-03-07 15:16 0龙行者0 阅读(36) 评论(0) 推荐(0) 编辑
摘要:1 迭代法的话, 本质上就是挨个遍历的意思, 只不过是根据题目条件的不同导致的遍历的方式和顺序发生了变化 2 听说迭代法和队列与栈更配哦 反正, 这几次遇到的几道题目, 一般比较有点技巧的迭代法, 都会借助队列和栈来帮助完成 关于队列和栈: 本质上就是一个容器, 但是由于其存取数据的特殊性, 我们通 阅读全文
posted @ 2021-03-07 15:11 0龙行者0 阅读(642) 评论(0) 推荐(0) 编辑
摘要:GET{ 方法(){ 1 双向队列 2 优先队列 } 总结(){ 1 优先队列其实是一种思想, 核心原理是大顶堆的构建过程, 底层实现是数组 2 优先队列常常用来解决有序排列问题, 也可以算作一种排序算法 3 这样来说的话 栈结构是用来解决匹配问题的 队列结构是用来解决顺序问题的, (只不过队列结构 阅读全文
posted @ 2021-03-01 17:08 0龙行者0 阅读(42) 评论(0) 推荐(0) 编辑
摘要:1 在遇到关于数学计算的过程中, 尤其是遇到除法运算时, 我们很可能后遇到关于只保留整数的情况, 刚开始的时候我只是单纯的使整数向下取整, 但是这样的话, 负数的绝对值会变得更大, 是与自己本来的想法相反的 所以, 下一次, 遇到整数取整的时候, 一定要考虑负数的情况, 而且, 并最终确定负数和正数 阅读全文
posted @ 2021-02-28 19:10 0龙行者0 阅读(1854) 评论(0) 推荐(0) 编辑
摘要:1 一般情况下, 我们会碰到这样一种情况, 就是, 对一系列相同元素进行同种操作的时候, 第一个元素可能会因为是作为首位而多一些额外的处理,(或者干脆就是另外一种处理) 这种情况下, 我们可以考虑设置另外一个元素作为首位元素, 从而使原来的首位元素变为第二个元素, 这样的话, 对所有元素的操作就是变 阅读全文
posted @ 2021-02-28 18:07 0龙行者0 阅读(46) 评论(0) 推荐(0) 编辑
摘要:GET{ 方法(){ 这一题完全就是考察数学能力的问题, 难的是怎么想到用双字符串拼接的, 更难得的是, 竟然有大神用一行简单代码解决这个问题并且在时间和空间上击败99%的用户 关于提到的涉及到的KMP算法, 其实本质上也是在双字符串想法基础上运用的, 不过一些内置的字符串查找库函数好像也是运用到了 阅读全文
posted @ 2021-02-27 23:39 0龙行者0 阅读(45) 评论(0) 推荐(0) 编辑
摘要:1 关于next数组 (1)写代码的时候为了避免逻辑混乱, 所以最好还是使得next数组从第零位开始记录, 这样的话, 当本位置发生比较冲突时, 可以直接取本位置存储的数值作为下一次进行比较的位置, 而不需要进行加一或者减一的操作 (2)next数组中记录的是本位置最长公共前后缀的长度,在这里我们需 阅读全文
posted @ 2021-02-27 23:15 0龙行者0 阅读(93) 评论(0) 推荐(0) 编辑
摘要:GET{ 关键难题(){ 1 边界确定问题 } } 阅读全文
posted @ 2021-02-24 19:30 0龙行者0 阅读(23) 评论(0) 推荐(0) 编辑
摘要:GET{ 临时想法(){ 1 代码随想录讲解组合问题(对应力扣77题), 意识到: 对于回溯算法(递归算法), 我一直无法理解的东西是无法确定回调函数的参数以及如何进行回溯操作, 另外, 递归函数下一层的操作是上一层遇到终止条件并执行完终止语句之后才执行的语句 反正感觉还是训练的太少了, 还是需要多 阅读全文
posted @ 2021-02-19 17:01 0龙行者0 阅读(153) 评论(0) 推荐(0) 编辑
摘要:GET{ 方法: 双指针法 * 先让数组有序(好像牵扯到数组的问题, 排序都很有必要) * 然后每次固定一个元素, 再去寻找另外两个元素, 也就是双指针 代码实现: (1) 利用 Arrays.sort(nums) 对数组进行排序。 (2) 初始化一个用于保存结果的值 result = nusm[0 阅读全文
posted @ 2021-02-17 12:16 0龙行者0 阅读(76) 评论(0) 推荐(0) 编辑
摘要:GET{ 方法(){ 直接合并数组, 然后使用希尔排序即可 } 总结(){ 本来以为难度特别大, 好像就是考察了一个排序方法 } } 阅读全文
posted @ 2021-01-03 21:57 0龙行者0 阅读(61) 评论(0) 推荐(0) 编辑
摘要:GET{ 总结(){ 算法是为了求解一个问题的解决办法 会运用到大量的数学 但是解决数学问题, 就不一定要仅限于数学的思路, 通过数据结构我们可以有更好的办法来解决数学问题 } } 阅读全文
posted @ 2021-01-03 21:18 0龙行者0 阅读(62) 评论(0) 推荐(0) 编辑
摘要:GET{ 犯错(){ 当初自己想出算法的时候主动想到了使用散列表(Map), 但是对于这个问题的认识不够深刻 总是以为需要从每一个字符串开始往后找到最长无重复字符串, 导致使用了双重for循环: 一层是对应以每一个元素开头, 一层是对应依次查找字符串想对应位置的字符 导致时间复杂度变为了O(n^2) 阅读全文
posted @ 2021-01-03 21:16 0龙行者0 阅读(58) 评论(0) 推荐(0) 编辑
摘要:GET{ 技巧:{ 如果想要在一组数据中快速查找到某一个具体的数值 可以借助数据结构中的Map和平衡二叉搜索树, 可以很快的搜索到需要的那个数值 但是要记住, Map中搜索键可以很快, 但是不能直接搜索到值, 所以我们可以把我们想要查询到的数据存储为键 } 方法:( 查找表法 ) { -在遍历的同时 阅读全文
posted @ 2021-01-01 09:54 0龙行者0 阅读(60) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示