03 2022 档案
摘要:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节
阅读全文
摘要:文章目录 🍕序言🍔IOU(Intersection over Union)1.优点2.作为损失函数会出现的问题(缺点) 🍟GIOU(Generalized Intersection over Union)1.来源2.特性3.存在的问题 🌭DIoU(Distance-IoU)1.来源2.优点3
阅读全文
摘要:思路:使用haspmap存储原来的结点和新节点的对应 代码: """ # Definition for a Node. class Node: def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None): self.v
阅读全文
摘要:1. 目的 使用NMS目的:提高召回率,但是召回率是“宁肯错杀一千,绝不放过一个”。因此在目标检测中,模型往往会提出远高于实际数量的区域提议(Region Proposal,SSD等one-stage的Anchor也可以看作一种区域提议)。 这就导致最后输出的边界框数量往往远大于实际数量,而这些模型
阅读全文
摘要:给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/er-cha-shu-zhon
阅读全文
摘要:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val
阅读全文
摘要:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3 示例 1: 输入: [1,6,3,2,5] 输出: false 示例 2: 输入: [1
阅读全文
摘要:文章目录 1️⃣ 起始源头2️⃣ 重要三点3️⃣ 衍生而出的指标🍞 召回率==查全率R🍦 精确率==查准率P🍞 + 🍦 = 🍰 PR曲线🍱 准确率🌮 F1🍠 Fβ 1️⃣ 起始源头 这是西瓜书P30的图,细化一下就是下面这张图 2️⃣ 重要三点 🎈 不要想着把字母在表格中对应🍕
阅读全文
摘要:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3],
阅读全文
摘要:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 来源:力扣(LeetCode) 链接:h
阅读全文
摘要:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] 来源:力扣(LeetCode) 链接:https://leetcode-cn.co
阅读全文
摘要:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 示例 1
阅读全文
摘要:文章目录 0. 前言0.1 简易版理解 1. 简单回顾R-CNN结构1.1 RPN网络[4]1.1.1. RPN的意义1.1.2. RPN的运作机制1.1.3 3. RPN的整个流程回顾 1.2 Roi Pooling[5]1.2.1 ROI Pooling的意义1.2.2 ROI Pooling的
阅读全文
摘要:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0)
阅读全文
摘要:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 3 / \ 4 5 / \ 1 2 给定的树 B: 4 / 1 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。 示
阅读全文
摘要:文章目录 DCGAN教程1. 简介2. 生成对抗网络(Generative Adversarial Networks)2.1 什么是 GAN2.2 什么是 DCGAN 3. DCGAN实现过程3.1 输入3.2 数据3.3 实现3.3.1 权重初始化3.3.2 生成器3.3.3 判别器3.3.4 损
阅读全文
摘要:文章目录 使用pytorch进行深度学习1. 深度学习构建模块:仿射变换, 非线性函数以及目标函数1.1 仿射变换1.2 非线性函数1.3 Softmax和概率1.4 目标函数 2. 优化和训练3. 使用PyTorch创建网络组件3.1 示例: 基于逻辑回归与词袋模式的文本分类器 使用pytorch
阅读全文
摘要:请完成一个函数,输入一个二叉树,该函数输出它的镜像。 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] Python 利用平行赋值的写法(即 a, b = b, aa,b=b,a ),可省略暂存操作。其原理是先将等号右侧打包成元组 (b,a)(b,
阅读全文
摘要:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路:新建一个链表,对l1和l2进行循环遍历,最后谁剩余,谁补到后面 # Definition for singly-linked l
阅读全文
摘要:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]
阅读全文
摘要:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 来源:力扣(LeetCode)
阅读全文
摘要:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路1:三指针 # Definition for singly-linked list. # class ListNode
阅读全文
摘要:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 示例: 给定一个链表: 1->2->3->4->
阅读全文
摘要:直接看代码吧,很简单的 class Solution: def exchange(self, nums: List[int]) -> List[int]: n = len(nums) i, j = 0, n-1 while i < j: while (i < j and (nums[i] & 1)
阅读全文
摘要:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 思路1:(不考虑大数问题) class Solution: def printNumbers(self, n: int) -> List[int]: return [i
阅读全文
摘要:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 思路1:两个指针 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val =
阅读全文
摘要:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 思路: 首先x==0,直接返回0,避免后续1/x报错n为负数,x变成1/x,n=-n使用幂的思想,当n对应的二进制末尾为1的时候,说明当前x应该算入到res中,更新res;如果不为1,那么
阅读全文
摘要:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。 思路1:10进制转2进制,判断余数是否为1即可 class Solution: def hammingWeight(self, n: int) -> int: if n
阅读全文
摘要:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最
阅读全文
摘要:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是
阅读全文
摘要:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+
阅读全文
摘要:吐槽自己,赋值号(=)写成了判断号(==),罪了… 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻
阅读全文
摘要:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为1
阅读全文
摘要:整篇文章整合多人文章,并且加上自己的一些理解创作 文章目录 1. KNN(K-Nearest Neighbor)介绍1.1 优点1.2 缺点1.3 skelearn库代码实现1.4 手动实现KNN算法 2. K-Means介绍2.1 优点2.2 缺点2.4 skelearn库代码实现2.5 手动实现
阅读全文
摘要:给你一棵根节点为 0 的 二叉树 ,它总共有 n 个节点,节点编号为 0 到 n - 1 。同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子
阅读全文
摘要:给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例,去leetcode查看示例即可)。 思路1: 深度优先搜索使用递归的方法,三要素:结束条件,递推公式,函数函数:deepfirst结束条件
阅读全文
摘要:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 思路: 1.python使用列表实现两个栈int, out2.入队的时候对i
阅读全文
摘要:给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。 思路: 不管num是10进制转多少进制N,都是一个思路num对N取整判断,不等于0,将num对N取余数值填充字符串,按照从右往左填充,更新num = num // N;直到num对N取整等于0 ,将此时num放到字符串最左边即可;负数
阅读全文
摘要:leetcode并没有这道题,是剑指offer的题目,可以在牛客上找到 题目描述 给定二叉树其中的一个结点,请找出其中序遍历顺序的下一个结点并且返回。 注意,树中的结点不仅包含左右子结点,而且包含指向父结点的指针。 思路: 找到其右孩子的最左结点否则,从当前结点往上遍历(题目给出了父节点指针),当当
阅读全文
摘要:你和一群强盗准备打劫银行。给你一个下标从 0 开始的整数数组 security ,其中 security[i] 是第 i 天执勤警卫的数量。日子从 0 开始编号。同时给你一个整数 time 。 如果第 i 天满足以下所有条件,我们称它为一个适合打劫银行的日子: 第 i 天前和后都分别至少有 time
阅读全文
摘要:model.eval() 使用model.eval()切换到测试模式,不会更新模型的k(权重),b(偏置)参数通知dropout层和batchnorm层在train和val中间进行切换: 在train模式,dropout层会按照设定的参数p设置保留激活单元的概率(保留概率=p,比如keep_prob
阅读全文
摘要:给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 。如果不存在,则返回 -1 。 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) 。 字符串 s 的子序列是在从 s 中删除任意数量的字符后可以获得的字符串。 例如,“abc” 是 “ae
阅读全文
摘要:原理 从17年被RetinaNet提出,Focal Loss 一直备受好评。由于其着重关注分类较差的样本的思想,Focal loss以简单的形式,一定程度解决了样本的难例挖掘,样本不均衡的问题。 代码 import torch import torch.nn as nn import torch.n
阅读全文
摘要:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 思路: 循环判断 class Solution: def replaceSpace(self, s: str) -> str: s1 = '' for i in s: if i == ' ': s1 += '%20' else: s1 +
阅读全文
摘要:单个变量的转化 ndarray = np.array(list) # list 转 numpy数组 list = ndarray.tolist() # numpy 转 list tensor=torch.tensor(list) # list 转 torch.Tensor list = tensor
阅读全文
摘要:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 将每一位进行相加,判断是否是一个数字,不是就继续做相加,这样会有两个循环,耗费时间,是比较简单的思路,需要继续优化。 class Solution: def addDigits(self, num: int) ->
阅读全文
摘要:文章目录 1.简介2.导入所需要的包3.加载图片5.计算损失5.1内容损失5.2风格损失 6.导入模型7.梯度下降 1.简介 本教程主要讲解如何实现由 Leon A. Gatys,Alexander S. Ecker和Matthias Bethge提出的Neural-Style 算法。Neural-
阅读全文
摘要:一、unsqueeze()函数 1.首先初始化一个a 可以看出a的维度为(2,3) 2.在第二维增加一个维度,使其维度变为(2,1,3) 可以看出a的维度已经变为(2,1,3)了,同样如果需要在倒数第二个维度上增加一个维度,那么使用b.unsqueeze(-2) 二、squeeze()函数介绍 1.
阅读全文
摘要:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1
阅读全文