美文网首页
ARTS打卡22-给网站添加全局搜索

ARTS打卡22-给网站添加全局搜索

作者: Andytl的世界 | 来源:发表于2020-07-27 06:28 被阅读0次

Algorithm做算法题,Review点评英文文章,Tip总结技术技巧,Share做技术分享。每周打卡一次,这就是ARTS打卡。

1. 做算法题

Leetcode 面试题 03.02. 栈的最小值

题目:

请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.

解题思路:

栈是一种操作受限的线性表,元素按照先进后出的顺序操作。数组就是线性表,但可以随机访问,通过封装压栈(push),弹栈(pop),读栈(top)操作可以进行限制。题目要求能获得栈的最小值,在每次压栈的时候判断是否最小值,记录下来。问题在于弹栈的时候,把最小值弹出去了怎么办?先判断是否栈顶是最小值,如果是,弹栈后重新计算最小值。题目要求操作的时间复杂度为O(1),每次弹栈都计算最小值的话,时间复杂度为O(n)。在极端情况下,栈顶是最小值,重新计算最小值时间复杂度O(n)。一般情况下,栈顶不一定是最小值,不用再找最小值,时间复杂度O(1)。

解题代码:

class MinStack:

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.items = []
        self.min_item = None


    def push(self, x: int) -> None:
        self.items.append(x)
        if self.min_item is None or x < self.min_item:
            self.min_item = x

    def pop(self) -> None:
        if len(self.items) > 0:
            if self.items[-1] == self.min_item:
                del self.items[-1]
                if len(self.items) > 0:
                    self.min_item = min(self.items)
                else:
                    self.min_item = None
            else:
                del self.items[-1]

    def top(self) -> int:
        return self.items[-1]

    def getMin(self) -> int:
        return self.min_item


# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()

2. 点评英文文章

阅读《Concise Guide to Databases》第四章Relational Database,主要介绍了关系型数据库的基本概念,从数据库设计范式到基础SQL语法,使用案例讲解概念是很好的方法,从具体的例子中更能感受到概念的本质内涵。

3. 技术技巧

介绍一款清单APP,“滴答清单”。比手机自带的备忘录功能强大不少。可以导入手机备忘录,平滑过渡。带有打卡分析功能,每一份坚持都留下脚印。内置番茄钟让你专注每一分钟。我觉得最强大的功能是,能在通知栏显示,而且常驻bar中,完成或者暂缓点击才能标记消失。以前用自带的备忘录,手一滑就没有了。想知道时间都去哪了,滴答清单告诉你。

4. 技术分享

给自己的网站添加全文搜索,有个简单的办法,docsearch中填写网站地址和邮箱就完了。docsearch会自动爬取网站,构建索引,反馈给预留的邮箱一段js代码,把代码插入网站中即可。详细过程参考这里

相关文章

  • ARTS打卡22-给网站添加全局搜索

    Algorithm做算法题,Review点评英文文章,Tip总结技术技巧,Share做技术分享。每周打卡一次,这就...

  • Jekyll search组件

    之前的文章给jekyll添加炫酷简洁的搜索中介绍了怎么给jekyll添加全局搜索功能,为了能够更快的加入搜索功能,...

  • ES 应用场景及核心概念

    1. ES使用场景 给网站/APP添加搜索功能 存储、分析数据 管理、交互、分析空间信息,将ES用于GIS 2. ...

  • Javaweb-案例练习-2-给搜索框添加提示

    给搜索框添加搜索提示功能 这篇来利用Ajax做一个给搜索框添加搜索提示的功能,这个我们在百度首页,搜索框随便输入一...

  • SiteServer CMS 搜索功能的实现

    最近给网站添加搜索功能,摸索了好久终于实现。 新建一个单页模板,生成文件名为@/utils/search 在网页包...

  • ARTS第二周

    前言 ARTS第二周 Algorithm 深度优先搜索 题目: 岛屿数量 classSolution{ int[]...

  • 20160107

    个人导航网站 1.添加用户中心2.用户自行管理个人常用网站3.搜索网站地址,自动关联

  • 全局搜索

    DECLAREv_table tabs.table_name%TYPE;v_col tabs.table_name...

  • 2020 5-6 ARTS

    ARTS1 Algorithm LeetCode 76 单词搜索 深度优先遍历,难度中等。 用深度...

  • 越狱屏蔽host插件

    搜索插件网站 https://www.ios-repo-updates.com/ 添加源地址 https://po...

网友评论

      本文标题:ARTS打卡22-给网站添加全局搜索

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