书栈网 · BookStack 本次搜索耗时 0.012 秒,为您找到 71 个相关结果.
  • 第四章、高频面试系列

    高频面试系列 高频面试系列 8 说了,本章都是高频面试题,配合前面的动态规划系列,祝各位马到成功! 欢迎关注我的公众号 labuladong,方便获得最新的优质文章:
  • 第三章、算法思维系列

    算法思维系列 算法思维系列 本章包含一些常用的算法技巧,比如前缀和、回溯思想、位操作、双指针、如何正确书写二分查找等等。 欢迎关注我的公众号 labuladong,方便获得最新的优质文章:
  • 第二章、数据结构系列

    数据结构系列 数据结构系列 这一章主要是一些特殊的数据结构设计,比如单调栈解决 Next Greater Number,单调队列解决滑动窗口问题;还有常用数据结构的操作,比如链表、树、二叉堆。 欢迎关注我的公众号 labuladong,方便获得最新的优质文章:
  • 第一章、动态规划系列

    动态规划系列 动态规划系列 我们公众号最火的就是动态规划系列的文章,也许是动态规划问题有难度而且有意思,也许因为它是面试常考题型。不管你之前是否害怕动态规划系列的问题,相信这一章的内容足以帮助你消除对动态规划算法的恐惧。 具体来说,动态规划的一般流程就是三步:暴力的递归解法 -> 带备忘录的递归解法 -> 迭代的动态规划解法 。 就思考流程来说,...
  • 区间调度之区间合并问题

    区间调度问题之区间合并 一、思路 二、代码 区间调度问题之区间合并 上篇文章用贪心算法解决了区间调度问题:给你很多区间,让你求其中的最大不重叠子集。 其实对于区间相关的问题,还有很多其他类型,本文就来讲讲区间合并问题(Merge Interval)。 LeetCode 第 56 题就是一道相关问题,题目很好理解: 我们解决区间问题的一般...
  • 如何去除有序数组的重复元素

    如何去除有序数组的重复元素 如何去除有序数组的重复元素 我们知道对于数组来说,在尾部插入、删除元素是比较高效的,时间复杂度是 O(1),但是如果在中间或者开头插入、删除元素,就会涉及数据的搬移,时间复杂度为 O(N),效率较低。 所以对于一般处理数组的算法问题,我们要尽可能只对数组尾部的元素进行操作,以避免额外的时间复杂度。 这篇文章讲讲如何对一...
  • 区间调度之区间交集问题

    区间交集问题 思路 代码 区间交集问题 本文是区间系列问题的第三篇,前两篇分别讲了区间的最大不相交子集和重叠区间的合并,今天再写一个算法,可以快速找出两组区间的交集。 先看下题目,LeetCode 第 986 题就是这个问题: 题目很好理解,就是让你找交集,注意区间都是闭区间。 思路 解决区间问题的思路一般是先排序,以便操作,不过题...
  • 如何判定括号合法性

    如何判定括号合法性 一、处理一种括号 二、处理多种括号 如何判定括号合法性 对括号的合法性判断是一个很常见且实用的问题,比如说我们写的代码,编辑器和编译器都会检查括号是否正确闭合。而且我们的代码可能会包含三种括号 [](){} ,判断起来有一点难度。 本文就来聊一道关于括号合法性判断的算法题,相信能加深你对栈 这种数据结构的理解。 题目很简单...
  • 字符串乘法

    字符串乘法 字符串乘法 对于比较小的数字,做运算可以直接使用编程语言提供的运算符,但是如果相乘的两个因数非常大,语言提供的数据类型可能就会溢出。一种替代方案就是,运算数以字符串的形式输入,然后模仿我们小学学习的乘法算术过程计算出结果,并且也用字符串表示。 需要注意的是,num1 和 num2 可以非常长,所以不可以把他们直接转成整型然后运算...
  • 常用的位操作

    常用的位操作 一、几个有趣的位操作 二、算法常用操作 n&(n-1) 常用的位操作 本文分两部分,第一部分列举几个有趣的位操作,第二部分讲解算法中常用的 n & (n - 1) 操作,顺便把用到这个技巧的算法题列出来讲解一下。因为位操作很简单,所以假设读者已经了解与、或、异或这三种基本操作。 位操作(Bit Manipulation)可以玩出很...