04 2021 档案

摘要:树的高度:节点到叶子节点的最大值就是其高度。树的深度:高度和深度是相反的,高度是从下往上数,深度是从上往下。因此根节点的深度和叶子节点的高度是 0。树的层:根开始定义,根为第一层,根的孩子为第二层。二叉树,三叉树,。。。 N 叉树,由其子节点最多可以有几个决定,最多有 N 个就是 N 叉树 二叉搜索 阅读全文
posted @ 2021-04-30 10:43 今夜无风 阅读(80) 评论(0) 推荐(0) 编辑
摘要:# 二叉树系列 class BinaryTree(object): def __init__(self, item): self.item = item self.left = None self.right = None def create_tree_data(): a = BinaryTree 阅读全文
posted @ 2021-04-29 17:08 今夜无风 阅读(166) 评论(0) 推荐(0) 编辑
摘要:关键点:贪心算法 def longest_continue_subseq(li): start = 0 res = 0 for i in range(1, len(li)): if li[i] <= li[i-1]: start = i res = max(res, i - start + 1) r 阅读全文
posted @ 2021-04-28 15:27 今夜无风 阅读(641) 评论(0) 推荐(0) 编辑
摘要:def reverse_str(s): from functools import reduce res = s[::-1] # 切片 res = "".join(list(reversed(s))) # 反转函数 res = reduce(lambda x,y:y+x, s) # reduce p 阅读全文
posted @ 2021-04-27 22:13 今夜无风 阅读(339) 评论(0) 推荐(0) 编辑
摘要:技巧:采用滑动窗口方法,首数值更新尾数值 实现: def max_continue_avg(li, k): first_sum = 0 for i in range(k): first_sum += li[i] res = first_sum for j in range(k, len(li)): 阅读全文
posted @ 2021-04-27 17:52 今夜无风 阅读(113) 评论(0) 推荐(0) 编辑
摘要:定义:从根节点到最近叶子结点的最短路径上的节点个数 实现: class TreeNode(object): def __init__(self, item): self.item = item self.left = None self.right = None def create_tree(): 阅读全文
posted @ 2021-04-27 17:49 今夜无风 阅读(92) 评论(0) 推荐(0) 编辑
摘要:方法一:set集合法,数据节点存在则说明有环 def create_circle_linklist(): a = Node(1) b = Node(2) c = Node(3) d = Node(4) a.next = b b.next = c c.next = d d.next = b retur 阅读全文
posted @ 2021-04-26 14:12 今夜无风 阅读(208) 评论(0) 推荐(0) 编辑
摘要:问题: 输入整型数组,返回两元素的索引,使得这两个元素之和为特定的结果。假设这两个元素为不同元素。例如: nums = [1,3,2,7] , target = 5返回[1,2], 因为nums[1] + nums[2] = 3 + 2 = 5; 当没有符合元素时, 返回null def two_s 阅读全文
posted @ 2021-04-24 23:57 今夜无风 阅读(224) 评论(0) 推荐(0) 编辑
摘要:三种情况:1)全部为正数;2)全部为负数;3)有负有正。对传入数据排序: 如果排序后的数组的最大元素为负数,则说明数组元素均为负数如果排序后的数组的最大元素为正数,则又需要分情况讨论:数组中所有元素均为正数,则最大值为最后三个数组元素的乘积;数组中元素有正数,也有负数;这时候就需要进行比较了;用最后 阅读全文
posted @ 2021-04-24 23:35 今夜无风 阅读(146) 评论(0) 推荐(0) 编辑
摘要:思路: def new_ton(num): if num == 0: return 0 res = int(sqrt(num, num)) print(res) def sqrt(n, x): cur = (n + x/n) / 2 if cur == n: return cur else: ret 阅读全文
posted @ 2021-04-24 22:55 今夜无风 阅读(66) 评论(0) 推荐(0) 编辑
摘要:需求:顺序加载多个计算图时,会导致第二个计算图后变量 不可用,在程序初始化中解决该问题(一下代码没有做优化,请读者自行修正) class BertEncoder(object): """ model """ def __init__(self, OUTPUT_GRAPH, OUT_TENSOR): 阅读全文
posted @ 2021-04-23 18:29 今夜无风 阅读(180) 评论(0) 推荐(0) 编辑
摘要:def find_index(li): if not li or len(li) == 0: return li_sum = sum(li) left_total = 0 for i in range(len(li)): left_total += li[i] right_total = li_su 阅读全文
posted @ 2021-04-23 15:57 今夜无风 阅读(46) 评论(0) 推荐(0) 编辑
摘要:一个数的平方根在1~x-1内 def find_sqrt_int(num): if not num: return left, right = 0, num while left <= right: mid = left + (right-left) / 2 if mid ** 2 >= num: 阅读全文
posted @ 2021-04-23 15:52 今夜无风 阅读(75) 评论(0) 推荐(0) 编辑
摘要:题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。解法:采用双指针,遍历数组,发现两个值相等,移动指针,发现两个值不相等,互换位置保证指针走过的地 阅读全文
posted @ 2021-04-22 20:22 今夜无风 阅读(1220) 评论(0) 推荐(0) 编辑
摘要:def biggest_divisor(a, b): """ 欧几里得法获得最大公约数,递归要有停止条件""" if b == 0: return a else: return biggest_divisor(b, a % b) def biggest_divisor_v2(a, b): while 阅读全文
posted @ 2021-04-21 22:32 今夜无风 阅读(147) 评论(0) 推荐(0) 编辑
摘要:def lcs(s1, s2): m = len(s1) # 记录s1长度 n = len(s2) # 记录s2长度 a = [[0 for j in range(n+1)]for i in range(m+1)] # 得分数组 b = [[0 for j in range(n+1)]for i i 阅读全文
posted @ 2021-04-21 22:09 今夜无风 阅读(61) 评论(0) 推荐(0) 编辑
摘要:首先我们看操作手册: 在想要快速计算特定维度上的求和使用该方法,如: 阅读全文
posted @ 2021-04-21 11:13 今夜无风 阅读(155) 评论(0) 推荐(0) 编辑
摘要:方法一:双指针法 采用就地反转,不用额外开辟空间 注意:接收链表的head节点,返回当前节点 方法二:递归法 代码如下: class Node(object): def __init__(self, item, next=None): self.item = item self.next = nex 阅读全文
posted @ 2021-04-19 23:00 今夜无风 阅读(77) 评论(0) 推荐(0) 编辑
摘要:问题:对于n个非负整数,如何拼接它们使得他们得到整数结果值最大?如:32, 64, 12, 118, 11829, 10 拼接的最大整数是:6432121182911810 解决:将应当拼接的顺序排列好直接join。直接上,首字数大的排在最前,但如果首字数相同如何比较呢,如:718和71819谁要放 阅读全文
posted @ 2021-04-17 23:52 今夜无风 阅读(952) 评论(0) 推荐(1) 编辑
摘要:类别:1)0-1背包;2)分数背包 0-1背包使用贪心算法无法获得最优解 分数背包代码如下: def fractional_package(goods, w): """ :param data: [(价值,重量),...] :param w: 要拿取的总重量 :return:(拿走的数量,拿走的总价 阅读全文
posted @ 2021-04-17 23:03 今夜无风 阅读(262) 评论(0) 推荐(0) 编辑
摘要:问题:店家现有纸币:100元、50元、20元、5元、1元,对于某一商品的费用找钱,如何使得找的纸币数量最少 解决:贪心算法 代码: def change_money(data, num): """ :param data: 纸币面值 :param num: 当前费用 :return: 对应纸币面值数 阅读全文
posted @ 2021-04-17 22:14 今夜无风 阅读(269) 评论(0) 推荐(0) 编辑
摘要:话不多说,直接上重点: 本质:Python函数功能:可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象主要需求场景:性能测试、插入日志、事务处理、缓存、权限校验等优势:可以抽离出大量与函数功能本身无关的雷同代码并继续重用,即:为已经存在的对象添加额外的功能 实验 阅读全文
posted @ 2021-04-16 16:01 今夜无风 阅读(52) 评论(0) 推荐(0) 编辑
摘要:class Node(): def __init__(self, item): self.item = item self.next = None def create_linklist_head(li): head = Node(li[0]) for e in li[1:]: node = Nod 阅读全文
posted @ 2021-04-15 23:35 今夜无风 阅读(677) 评论(0) 推荐(0) 编辑
摘要:在已有排序的列表中,如果需要高性能查找特定数,使用二分查找;即使是无序列表,也可以先采用O(nlogn)时间复杂度下排序,再二分查找也是不错的选择 def binary_search(li, left, right, num): while left < right: mid = (left + r 阅读全文
posted @ 2021-04-15 10:32 今夜无风 阅读(79) 评论(0) 推荐(0) 编辑
摘要:通常,我们使用bert做文本分类,泛化性好、表现优秀。在进行文本相似性计算任务时,往往是对语料训练词向量,再聚合文本向量embedding数据,计算相似度;但是,word2vec是静态词向量,表征能力有限,此时,可以用已进行特定环境下训练的bert模型,抽取出cls向量作为整个句子的表征向量以供下游 阅读全文
posted @ 2021-04-14 18:25 今夜无风 阅读(2208) 评论(0) 推荐(0) 编辑
摘要:侧重点一:点击率(Click Through Rate, 缩写为CTR):为点击条目的个数除以总条目个数。 侧重点二:K位准确率(Precision@K):为在最好的K个推荐的条目中获得的点击数除以K。 侧重点三:归一化折扣累计收益(Normalized Discounted Cumulative 阅读全文
posted @ 2021-04-10 17:34 今夜无风 阅读(291) 评论(0) 推荐(0) 编辑
摘要:def partition(data, left, right): tmp = data[left] while left < right: while left < right and data[right] >= tmp: right -= 1 data[left] = data[right] 阅读全文
posted @ 2021-04-10 15:01 今夜无风 阅读(91) 评论(0) 推荐(0) 编辑
摘要:""" Function: do it """ li = [3, 4, 2, 9, 1, 7, 6, 5, 8] def select_sort(data): for i in range(len(data)-1): min_loc = i # 假设当前位是最小值位置 for j in range( 阅读全文
posted @ 2021-04-09 14:12 今夜无风 阅读(39) 评论(0) 推荐(0) 编辑
摘要:li = [3, 4, 2, 9, 1, 7, 6, 5, 8] def insert_sort(data): for i in range(1, len(data)): tmp = data[i] # 拿到手里的数 j = i - 1 # 开始往前比较的开始位 while j >= 0 and d 阅读全文
posted @ 2021-04-09 10:17 今夜无风 阅读(46) 评论(0) 推荐(0) 编辑
摘要:li = [3, 4, 2, 9, 1, 7, 6, 5, 8] def bubble_sort(data): for i in range(len(data)-1): exchange = True for j in range(len(data)-i-1): if data[j] > data[ 阅读全文
posted @ 2021-04-08 18:03 今夜无风 阅读(65) 评论(0) 推荐(0) 编辑
摘要:重要组件:1.query解析;2.目标召回;3.目标排序 解决问题:1.语义检索问题;2.个性化检索问题 如何召回语义上相似但没有明确和query项匹配的物品 针对不同的人相同的搜索词,希望召回一些个性化的物品,较为发散 应用依据:电商领域最常用的召回当属item-based CF,此类方法根据it 阅读全文
posted @ 2021-04-06 18:27 今夜无风 阅读(290) 评论(0) 推荐(0) 编辑
摘要:童话结尾,寒冬到了,动物们汇成迁徙的大潮,无论是落寞的熊,还是漂亮的狐狸,都汇入大军,心事重重地走在冬天的冰河上 阅读全文
posted @ 2021-04-06 09:30 今夜无风 阅读(120) 评论(0) 推荐(0) 编辑