键值

力扣5339 二叉搜索子树的最大键值和 解题报告

雨燕双飞 提交于 2020-03-10 10:22:13
目录 题目描述 思路分析 ac代码 题目描述 链接: https://leetcode-cn.com/problems/maximum-sum-bst-in-binary-tree/ 给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。 二叉搜索树的定义如下: 任意节点的左子树中的键值都 小于 此节点的键值。 任意节点的右子树中的键值都 大于 此节点的键值。 任意节点的左子树和右子树都是二叉搜索树。 示例 1: 输入:root = [1,4,3,2,4,2,5,null,null,null,null,null,null,4,6] 输出:20 解释:键值为 3 的子树是和最大的二叉搜索树。 示例 2: 输入:root = [4,3,null,1,2] 输出:2 解释:键值为 2 的单节点子树是和最大的二叉搜索树。 示例 3: 输入:root = [-4,-2,-5] 输出:0 解释:所有节点键值都为负数,和最大的二叉搜索树为空。 示例 4: 输入:root = [2,1,3] 输出:6 示例 5: 输入:root = [5,4,8,3,null,6,3] 输出:7 提示: 每棵树最多有 40000 个节点。 每个节点的键值在 [-4 * 10^4 , 4 * 10^4] 之间。 来源:力扣(LeetCode) 链接:https://leetcode-cn

python day 5

試著忘記壹切 提交于 2020-03-09 03:23:43
1、昨日内容回顾 自己背 2、作业讲解 #以下作业均为自己自学完成,暂无标准答案 # 作业一: li = ['a大','a二','a三','a四','a五'] # 1)计算列表的长度并输出。 s = len(li) print(s) # 2)列表中追加元素'seven',并输出添加后的列表 li.append('seven') print(li) # 3)请在列表的第1个位置插入元素"Tony,并输出添加后的列表。 li.insert(0,'tony'.capitalize()) print(li) # 4)请修改列表第2个位置的元素为'老三',并输出修改后的列表。 li[2] = '老三'.capitalize() print(li) # 5)请将列表l2=[1,'a'3,4,'heart']的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 l2=[1,'a',3,4,'heart'] li.extend(l2) print(li) # 6)请将字符串s= 'qwert’的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 s = 'qwert' li.extend(s) print(li) # 7)请删除列表中的元素'a三',并输出添加后的列表。 li.pop(2) print(li) # 8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表

#Python入门(八)##太原理工大学机器人团队20天学习打卡day8

倾然丶 夕夏残阳落幕 提交于 2020-03-08 22:33:01
今日主讲字典类型及其应用和jieba库 字典类型 可以理解为" 映射 “,一种键(索引)和值(数据)之间的对应 键值对:键是数据索引的扩展 字典是键值对的集合,键值对之间无序 采用大括号{}和dict创建,键值对用冒号:表示 如: a={“name”:“太原理工大学”,“address”:"山西太原”} ~~d[“name”] 对应’太原理工大学’ 值=字典变量[键] 字符类型操作函数和方法 字典类型应用场景 映射无处不在,键值对无处不在 例如:统计数据出现的次数,数据是键,次数是值 补充说明:中文文本需要通过分词获得单个的词语,jieba库就能实现中文分词,三种用法 jieba.lcut(s),精确模式,把文本精确的切分开,无冗杂单词 jieba.lcut(s,cut_all=True),把文本所以可能的词语都扫描出来,有冗杂 jieba.lcu_for_search(s),搜索引擎模式,在精确模式基础上,对长词再次切分 jieba库属于第三方库,是需要手动安装的,在下方输入cmd(命令提示符),输入 pip install jieba 如果它显示你pip版本过低,需要升级(degrade),那么就按照它的要求输入 python -m pip install --upgrade import jieba print ( jieba . lcut ( "我爱太原理工大学" ) )

文献阅读笔记(五)

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-08 19:52:37
2019 Journal of Web Semantics_Linking and disambiguating entities across heterogeneous RDF graphs笔记整理 一、 论文整理思路流程 1.1 论文的相关研究工作 CBD(Concise Bounded Descriptions )简洁有界描述 面对数据相关参数(如选择哪一个属性作为标记)时减少人工识别的困难 根据大量语义实例和现实实例的对数据异质性的分类 提出了基于CBD的实例分析框架,用于在匹配阶段对数据来源进行表示和比较 一种新策略,用于自动识别移除两个数据集之间的“问题”属性(不适合作为标签的属性) 对于大量开源基准的多方面经过检验的衡量标准(基准的衡量标准) 有简易交互界面的本文提出的系统的开源实例 首先提出了数据异质性的分类:根据先前的研究,本文专注于两个数据集之间对于某一信息描述的不同从而发现形式上(属性还是类别)值上和结构上的异质性。本文尤其关注且使用高度异质化的现实经典音乐数据集和大量IM@OAEI产生的合成基准。 1.2 论文主要解决的问题 1.3 论文解决问题的过程 1) 数据值维度的异质性:术语异质性(由于词语的同义性、不同词语的多义性产生,也包括少量的单词拼写错误)、语言异质性(不同语言互相翻译造成的)、数据属性和对象属性异质性

Redis系列 —— 简介与安装

女生的网名这么多〃 提交于 2020-03-08 14:55:56
Redis简介   Redis是完全是开源免费的,遵循BSD协议(是一个给与使用者很大自由的协议),是一个高性能(NOSQL非关系型数据库)的key-value数据库,并提供多种语言的API。   它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 特点: 1.性能极高-Redis能读的速度是110000次/s,写的速度是81000次/s。 2.丰富的数据类型-Redis支持的类型String,List, Hash, Set及Ordered Set数据类型操作。 3.原子-Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 4.丰富的特性-Redis还支持publish/subscribe,通知, key过期等等特性。 关系型数据库和非关系型数据库    关系型数据库 最典型的数据结构是表,表与表之间建立关联关系。 优点:   1、易于维护:都是使用表结构,格式一致;   2、使用方便:SQL语言通用,可用于复杂查询;   3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。 缺点:   1、读写性能比较差

字典

為{幸葍}努か 提交于 2020-03-06 17:25:00
目录 字典 字典初识 字典元素的增加 字典的删除 字典的修改 字典的查找 字典的嵌套 字典 字典初识 我们来看下面的一个例子: name_lst = ["新力", "一帆", "海绵", "秀"] id_lst = [18, 9, 25, 50] 其中,列表 name_lst 中存储的是同学的名字, id_lst 中存储的是对应同学的学号。例如, 新力 的学号是 18 。 如果我们要查找新力的学号,就要去另一个列表中找到其索引对应的学号值,例如: name_lst[0] id_lst[0] 这样的操作虽然也能满足我们的需求,但是显然有些繁琐。而且一旦任何一个列表中的索引发生了变化(比如进行了插入或者删除数据的操作),就要对另一个列表进行同样的改动,否则会造成混乱。 如果我们使用字典来进行这一类操作,就可以避免这样的麻烦。 字典也是 Python 中的基本数据类型之一。字典是 Python 中唯一一种包含键值对的数据类型。字典是一种键值对数据。 字典在 Python 中的关键字是 dict 。 字典用来存储大量数据,数据量比列表存储的还要大。 字典能够将数据和数据之间进行关联。 字典的定义方法是这个样子的: dic = {'键': '值'} ,具体的例子就是: dic = {"新力": ["开车", "唱", "跳"], "一帆": 9, 25: "海绵", True: "秀",

java基础进阶篇(六)------HashTable

孤街浪徒 提交于 2020-03-06 11:02:17
文章目录 一.概述 二.和HashMap的比较 1.不同点 1).接口 2).线程安全 3).初始容量和扩容 4).键值null 的情况 2.相同点 三.结构图 一.概述   前面介绍了HashMap的结构和原理,这里介绍个类似HashMap的结构Hashtable。   HashTable 官方解释是HashMap的轻量级实现, 和 HashMap 一样,Hashtable 也是一个 散列表 ,它存储的内容是 键值对(key-value)映射 。   所以我们结合HashMap来介绍HashTable, 比较下两者的区别。   HashTable 使用的很少, 它支持线程安全, 通过内部方法加上 synchronized 实现, 因此同步锁的密度太大了, 在实际情况中笔者用的很少, 所以关于方法就不像HashMap 详细介绍了.后面会单独准备一章解决HashMap的线程同步问题. 二.和HashMap的比较 1.不同点 1).接口    Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。   HashMap继承AbstractMap,实现了Map, Cloneable, Serializable接口。 2).线程安全    Hashtable 线程安全,支持多线程并发,

mysql索引的数据结构

妖精的绣舞 提交于 2020-03-06 03:27:07
哈希索引:通过对键值进行一定的哈希算法得到新的哈希值,检索时不需要像btree那样从根节点到叶子节点逐级查找,而是通过哈希算法就可以快速定位到位置 btree和哈希结构的比较: 1、哈希结构的索引适合等值查询,前提是值唯一,因为会出现哈希碰撞的情况,就会导致找到具体的位置后,还得扫描链表 2、哈希结构不适合范围查找,原本有序的磁盘数据经过键值的哈希算法后可能试键值出现不连续,导致不能范围查找 3、哈希机构不适合排序、模糊查询、分组查询,因为这些本质上是范围查询 4、哈希结构不能遵循复合索引的最左原则 B-tree索引:是一个多路平衡搜索树,和二叉树的区别是二叉树每个节点只允许有两个子节点,而btree可以有多个节点 其特点是: 1、所有键值分布在整棵树中 2、任何一个关键字出现且只出现在一个节点中 3、一次查询可能未到叶子节点就可以查询结束,因为真实数据也存储在非叶子节点;性能逼近二分查找 B+tree也是一种多路平衡搜索树,它和B-tree的区别是: 1、B+tree存储的真实数据只在叶子节点 2、为所有叶子节点增加了一个链指针 为什么使用B+tree 1、B+树更适合外部存储,由于内节点无 data 域,一个结点可以存储更多的内结点,每个节点能索引的范围更大,也意味着 B+树单次磁盘IO的信息量大于B-树,I/O效率更高。 2、Mysql是一种关系型数据库

redis五大数据类型

Deadly 提交于 2020-03-05 23:34:15
redis五大数据类型 字符串 哈希 列表 集合 有序集合 键操作 # 1.set 键名 值(覆盖) set k1 v1 # 2.EXISTS 键名 EXISTS k1 # 3.查所有keys值 keys * # 4.move 键值 库编号,当前库对应键值会消失 move k1 2 # 5.ttl 键值,查看键存活时间(永久为-1,过期或不存在-2) # 6.get 键值 # 7.EXPIRE 键值 存活时间 # 8.type 键值 查看键类型 # 9.del 键值 字符串 # append 键 值 ,追加字符串 append k1 12345 # STRLEN 键 获取字符串长度 #incr、decr、incrby、decrby一定要是数字才能加减 incr k1 decr k1 incrby k1 3 decrby k1 3 # getrange k1 0 -1 (获取全部) # getrange k1 0 3 (获取0-3位左闭右开) # setrange k1 0 xxx (第0位开始覆盖) # setex 键值 存活时间 value (set with expires) # setnx 键值 value (set if not exist)如果存在不执行 # mset k1 v1 k2 v2 k3 v3 (一次设置多对值) # msetnx k1 v1 k2 v2 k3