美文网首页
10.28 - 九章高级算法班题目大总结(3,4课)

10.28 - 九章高级算法班题目大总结(3,4课)

作者: 健时总向乱中忙 | 来源:发表于2017-10-29 10:27 被阅读0次

    课程3:stack,deque,heap的运用
    Expression Expand:利用stack来记录暂不需要的信息

    Trapping Rain Water: 找到每个点的左边最大和右边最大

    Implement Queue by Two Stacks: stack的简单应用

    Min Stack:stack的简单应用

    Sliding Window Median:因为python无法直接删除heap里的元素,所以用lazy pop来解决

    Trapping Rain Water II :用heap从四周朝中间找

    Maximal Rectangle:这题是那道最大rectangle的扩展,把每一行作为底边来考虑当前行可以形成的最大矩形的大小

    Max Tree:stack保持单调性的应用

    Largest Rectangle in Histogram:保持单调递增,就可以知道以当前长度为高的矩形的左右边界了,stack里存的是index

    Data Stream Median:直接用两个heap,比较简单

    Sliding Window Maximum:用一个deque保持window里递减

    Binary Tree Maximum Path Sum II:简单的dfs

    Heapify:对一半的值执行一个siftdown操作,从len/2开始一直操作到0,这样就可以使得最小值移动到最上面,并且保证每个值的2i和2i+1的节点都比当前值要大

    K Edit Distance:比较粗糙的做法是用动态规划找出每个单词到target的edit distance然后和k比较下

    Expression Tree Build:利用stack找出左右节点

    Convert Expression to Reverse Polish Notation:比较麻烦的地方在于确定每一个运算符的base

    课程4:按值二分和扫描线

    Sqrt(x):比较基础的按值二分

    Maximum Average Subarray:这题的按值二分比较神奇,判定条件有点麻烦

    Sqrt(x) II:同样的按值二分,只是循环结束条件是start和end小于某个微小的数

    Number of Airplanes in the Sky:很简单的扫描线问题

    Divide Two Integers :又一道用二分法思想的题

    Find Peak Element:二分法基本题

    First Bad Version:又一道基本题

    Find Peak Element II:在matrix找到peak,每次可以丢掉左边或者右边,或者是上边和下边

    Wood Cut:比较简单的按值二分,判定条件是把每一个都除一下,看看要多少刀

    Find the Duplicate Number:二分法,判定条件是数一数比它小的值的个数

    Smallest Rectangle Enclosing Black Pixels:按照给出的pixels向上下左右二分,找到边界

    相关文章

      网友评论

          本文标题:10.28 - 九章高级算法班题目大总结(3,4课)

          本文链接:https://www.haomeiwen.com/subject/vdaepxtx.html