19 Matching Annotations
  1. Oct 2023
    1. 那么我们原始矩形可以变成如下的形式的数据:

      第一行表示,我们以第一行作为底边,所形成的 histogram(直方图)的高度,高度定义为底边开始的连续1个数,其他行也类似。

      你会发现求解每行直方图中矩形面积的过程,就是在枚举所有的矩形。所以只要可以找出每行直方图的最优解,就可以得到整个矩阵的最优解

      所以问题变成了 枚举每一行,然后求出每一行对应的histogram的最大矩形。

      关于histogram求最大矩形

    2. 第四行:

    3. 因为我们要找的是矩形,所以它一定是以 某个行元素开始的,如果枚举行的时候,我们会发现: 对于第一行:

    1. 问题:直方图是由排列在同一基线上的一系列矩形组成的多边形。为了简单起见,假设这些矩形的宽度相等但高度可能不同。例如,下图1给出了一个直方图,其中各个矩形的高度为3、2、5、6、1、4、4,宽度为标准1单位。当给定了一个保存所有矩形高度的数组时,如何找到其中最大的矩形。对于给定的例子,最大矩形如图阴影部分所示:

      可选的矩形面积,都是一条直方在x轴方向累积出来的。也就是说等于直方保持递增的长度乘以直方的高。因此可以和递增栈联系起来

    1. 这个页面是我在 [[AlgorithmVisualizer]] 的官方部署网站上fork出来的代码空间

    1. 这个页面是 #AlgorithmVisualizer 的官方部署网站上我fork出来的代码空间

    1. Fork

      登录之后,可以把公共的代码库fork成自己的

    2. 这个是[[AlgorithmVisualizer]]的官方部署网站

    1. 邻接矩阵与邻接表表示法的关系 联系:邻接表中每个链表对应于邻接矩阵中的一行,链表中结点个数等于一行中非零元素的个数。 区别: 对于任一确定的无向图,邻接矩阵是唯一的(行列号与顶点编号一致),但邻接表不唯一(链接次序与顶点编号无关)。邻接矩阵的空间复杂度为 O ( n 2 ) O(n^2) O(n2),而邻接表的空间复杂度为 O ( n + e ) O(n+e) O(n+e)。 用途:邻接矩阵多用于稠密图;而邻接表多用于稀疏图。

    1. 方法三:在vscode的launch.json文件中,添加一个"vmArgs"参数,设置为"-Dfile.encoding=UTF-8"。这样就可以让Debugger for Java插件在调试java代码时使用UTF-8Dfile.encoding=UTF-8"。这样就可以让Debugger for Java插件在调试java代码时使用UTF-8编码。编码。希望这些方法能够对您有所帮助。如果您还有其他问题,欢迎继续与我交流。😊希望这些方法能够对您有所帮助。如果您还有其他问题,欢迎继续与我交流。😊

      如果是debug的话,要带上它来解决javac无utf-8编码问题

    2. 有以下几种方法可以配置javac的编码方式:方法一:在vscode的设置中,找到"code-runner.executorMap",然后修改"java"的值为"cd方法一:在vscode的设置中,找到"code-runner.executorMap",然后修改"java"的值为"cd$dir && javac -encoding UTF-8 $fileName && java $fileNameWithoutExt"。这样就可以$dir && javac -encoding UTF-8 $fileName && java $fileNameWithoutExt"。这样就可以让code-runner插件在运行java代码时使用UTF-8编码。让code-runner插件在运行java代码时使用UTF-8编码。

      我用了第一个方法,因为它比较通用,只要是run java代码都可以生效

    1. TreeSet的内部是通过一个TreeMap实例来实现的,TreeMap是一个实现了SortedMap接口的映射类,它可以存储键值对,并且按照键的自然顺序或者指定的比较器进行排现了SortedMap接口的映射类,它可以存储键值对,并且按照键的自然顺序或者指定的比较器进行排序。TreeSet利用了TreeMap的这些特性,将自己的元素作为TreeMap的键,而将一个统一的Object序。TreeSet利用了TreeMap的这些特性,将自己的元素作为TreeMap的键,而将一个统一的Object对象作为TreeMap的值。这样,TreeSet就可以通过TreeMap来保证元素的唯一性和有序性。对象作为TreeMap的值。这样,TreeSet就可以通过TreeMap来保证元素的唯一性和有序性。具体来说,TreeSet有以下几种构造方法:具体来说,TreeSet有以下几种构造方法:TreeSet():创建一个空的TreeSet,它按照元素的自然顺序进行排序。TreeSet():创建一个空的TreeSet,它按照元素的自然顺序进行排序。TreeSet(Collection<? extends E> c):创建一个包含给定集合元素的TreeSet,它按照元素的自TreeSet(Collection<? extends E> c):创建一个包含给定集合元素的TreeSet,它按照元素的自然顺序进行排序。然顺序进行排序。TreeSet(Comparator<? super E> comparator):创建一个空的TreeSet,它按照给定的比较器TreeSet(Comparator<? super E> comparator):创建一个空的TreeSet,它按照给定的比较器进行排序。进行排序。TreeSet(SortedSet s):创建一个包含给定有序集合元素的TreeSet,它按照给定集合的排序规TreeSet(SortedSet s):创建一个包含给定有序集合元素的TreeSet,它按照给定集合的排序规则进行排序。则进行排序。对应地,TreeSet内部会创建一个相应的TreeMap实例,例如:对应地,TreeSet内部会创建一个相应的TreeMap实例,例如:TreeMap():创建一个空的TreeMap,它按照键的自然顺序进行排序。TreeMap():创建一个空的TreeMap,它按照键的自然顺序进行排序。TreeMap(Comparator<? super K> comparator):创建一个空的TreeMap,它按照给定的比TreeMap(Comparator<? super K> comparator):创建一个空的TreeMap,它按照给定的比较器进行排序。较器进行排序。TreeMap(Map<? extends K,? extends V> m):创建一个包含给定映射元素的TreeMap,它按TreeMap(Map<? extends K,? extends V> m):创建一个包含给定映射元素的TreeMap,它按照键的自然顺序进行排序。照键的自然顺序进行排序。TreeMap(SortedMap<K,? extends V> m):创建一个包含给定有序映射元素的TreeMap,它TreeMap(SortedMap<K,? extends V> m):创建一个包含给定有序映射元素的TreeMap,它按照给定映射的排序规则进行排序。按照给定映射的排序规则进行排序。当我们向TreeSet中添加、删除或查找元素时,实际上是调用了TreeMap中相应的方法,例如:当我们向TreeSet中添加、删除或查找元素时,实际上是调用了TreeMap中相应的方法,例如:boolean add(E e):将指定元素添加到此集合中(如果该元素尚未存在于集合中)。实际上是调boolean add(E e):将指定元素添加到此集合中(如果该元素尚未存在于集合中)。实际上是调用了boolean put(K key, V value),将元素作为键,将一个统一的Object对象作为值。用了boolean put(K key, V value),将元素作为键,将一个统一的Object对象作为值。boolean remove(Object o):从此集合中移除指定元素(如果该元素存在于此集合中)。实际boolean remove(Object o):从此集合中移除指定元素(如果该元素存在于此集合中)。实际上是调用了V remove(Object key),将元素作为键进行移除。上是调用了V remove(Object key),将元素作为键进行移除。boolean contains(Object o):如果此集合包含指定元素,则返回 true。实际上是调用了boolean contains(Object o):如果此集合包含指定元素,则返回 true。实际上是调用了boolean containsKey(Object key),将元素作为键进行判断。boolean containsKe

      TreeSet如文所示如此借由TreeMap实现自己的行为特性。

    2. TreeMap提供了以下一些主要的方法:put(K key, V value) - 将指定的键值对插入到映射表中,如果键已经存在,则替换旧值put(K key, V value) - 将指定的键值对插入到映射表中,如果键已经存在,则替换旧值get(Object key) - 返回与指定键关联的值,如果键不存在,则返回nullget(Object key) - 返回与指定键关联的值,如果键不存在,则返回nullremove(Object key) - 删除并返回与指定键关联的键值对,如果键不存在,则返回nullremove(Object key) - 删除并返回与指定键关联的键值对,如果键不存在,则返回nullfirstKey() - 返回映射表中的第一个(最小)键firstKey() - 返回映射表中的第一个(最小)键

      lastKey() - 返回映射表中的最后一个(最大)键lastKey() - 返回映射表中的最后一个(最大)键 ceilingKey(K key) - 返回大于等于指定键的最小键,如果不存在,则返回nullceilingKey(K key) - 返回大于等于指定键的最小键,如果不存在,则返回null floorKey(K key) - 返回小于等于指定键的最大键,如果不存在,则返回nullfloorKey(K key) - 返回小于等于指定键的最大键,如果不存在,则返回null higherKey(K key) - 返回大于指定键的最小键,如果不存在,则返回nullhigherKey(K key) - 返回大于指定键的最小键,如果不存在,则返回null lowerKey(K key) - 返回小于指定键的最大键,如果不存在,则返回nulllowerKey(K key) - 返回小于指定键的最大键,如果不存在,则返回null

    1. 归档

      五彩划笔的归档功能,慎用,因为只要一归档,网页所采用的标签就会消失,无论在标签栏或是搜索中都不可见了,我希望标签可以一直存在,以在用五彩划笔标注时可以用其快速输入

    1. 这个是LocalRestApi的可交互Api文档, 很像是Swagger生成的。

    2. GET/active/Return the content of the active file open in Obsidian. Returns the content of the currently active file in Obsidian.返回Obsidian中当前活动文件的内容。 If you specify the header Accept: application/vnd.olrapi.note+json, will return a JSON representation of your note including parsed tag and frontmatter data as well as filesystem metadata. See "responses" below for details.如果您指定头部 Accept: application/vnd.olrapi.note+json ,将返回包括解析标签、前置数据以及文件系统元数据在内的笔记的JSON表示。有关详细信息,请参见下面的"responses"。

      该接口返回当前活动文件内容

    3. Servers

      LocalRestApi可以为接口提供https、 http这两种协议,通过切换该文档的Servers选项来切换协议。但是今天实测,发现 https 接口调用不通,报错如下:

      Failed to fetch. Possible Reasons:

      CORS Network Failure URL scheme must be "http" or "https" for CORS request.

      按理来说我的LocalRestApi没有更改默认状态下的启用 https的,暂时没弄明白什么原因。

  2. Sep 2023
    1. First steps​ 第一步The first thing you'll want to do is add a new choice. A choice can be one of four types.首先,您需要做的是添加一个新选项。选项可以是四种类型之一。