01 2022 档案
摘要:543. 二叉树的直径 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 思路: 这道
阅读全文
摘要:438. 找到字符串中所有字母异位词 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1: 输入: s = "cbaebabacd", p = "abc"输出:
阅读全文
摘要:394. 字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合
阅读全文
摘要:300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,
阅读全文
摘要:核函数是我们处理数据时使用的一种方式。对于给的一些特征数据我们通过核函数的方式来对其进行处理。我们经常在SVM中提到核函数,就是因为通过核函数来将原本的数据进行各种方式的组合计算,从而从低维数据到高维数据。比如原来数据下样本点1是x向量,样本点2是y向量,我们把它变成e的x+y次方,就到高维中去了。
阅读全文
摘要:297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻
阅读全文
摘要:234. 回文链表 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head = [1,2,2,1]输出:true 示例 2: 输入:head = [1,2]输出:false 思路: 要判断链表是否是回文链表,
阅读全文
摘要:207. 课程表 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必
阅读全文
摘要:这篇主要想总结一下与标题相关的一些概念。之前一直也是模模糊糊的。 先设定一个大环境:现在假设我们有一个产生数据的机器,我们这个机器的参数为θ,机器产生的结果的结果为x。不同的参数可以产生不同的结果。后面我们的θ,x也分别是参数、结果的意思。 概率密度 首先引入概率密度函数 ,它也等于: 这几种写法。
阅读全文
摘要:287. 寻找重复数 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。 你设计的解决方案必须不修改数组 nums 且只用常量级 O(1) 的额外空间。 示
阅读全文
摘要:238. 除自身以外数组的乘积 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4]输出: [24,12,8,6] 提示:题目数据保证数组之
阅读全文
摘要:240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,
阅读全文
摘要:239. 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出
阅读全文
摘要:236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1: 输入:r
阅读全文
摘要:226. 翻转二叉树 难度简单1129收藏分享切换为英文接收动态反馈 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 思路: 简单题,但是可以作为通过二叉树练习递归的好题目。给定传入的根节点,我们一共需
阅读全文
摘要:206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5]输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2]输出:[2,1] 示例 3: 输入:head = []输出:[] 思路: 反转链表!典
阅读全文
摘要:200. 岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1","1
阅读全文
摘要:198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃
阅读全文
摘要:160. 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义
阅读全文
摘要:155. 最小栈 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 示例: 输入: ["MinStack"
阅读全文
摘要:152. 乘积最大子数组 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1]输出: 0解释
阅读全文
摘要:给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head = [4,2,1,3]输出:[1,2,3,4] 示例 2: 输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5] 示例 3: 输入:head = []输出:[] 思路: 这个
阅读全文
摘要:146. LRU 缓存 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中
阅读全文
摘要:136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1]输出: 1 示例 2: 输入: [4,1,2,1,2]输出:
阅读全文
摘要:128. 最长连续序列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2,
阅读全文
摘要:142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果
阅读全文
摘要:给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos
阅读全文
摘要:最近写自动执行python的脚本,一直是这样写: nohup python -u test.py > output.log 2>&1 & 但有一次写错了,搞了半天才发现问题,才发现我其实并没有真正搞懂这段命令的含义。现在详细的整理一下: nohup 常规情况下我们运行python程序,在关闭客户端的
阅读全文
摘要:矩阵分解是非常常见的操作矩阵方式。尤其是在推荐系统里,我们往往会有一个用户-物品矩阵,这个矩阵非常大,比如100w个用户*1000w个物品矩阵,这个时候我们可以通过矩阵分解一方面降低矩阵的维度,另一方面提取用户和物品各自的信息。 举个例子,对于100w*1000w的用户-物品矩阵,我们可以得到100
阅读全文
摘要:矩阵是非常重要而基础的数学知识了。大学课上学线性代数基本就是在学矩阵的各种操作和运算。在深度学习里,几乎所有的参数也都是存放在矩阵中,并通过矩阵来做各种运算。大概把矩阵的基本知识点复习和总结一下。 行列式和矩阵的区别: 行列式和矩阵特别像,行列式长这样(两边是竖线): 矩阵长这样: 或这样:(两边是
阅读全文
摘要:泰勒公式是非常又名和重要的一个知识点了,我记得学xgboost的时候就用到了“二阶泰勒展开”,这里对泰勒公式做一个梳理和总结。 对于泰勒公式,我把它理解成,用一个“有规律、可表达”的公式来代替一个复杂的函数。我们对一个函数进行“泰勒展开”,其实就是用泰勒公式去代替原函数。 泰勒公式定义: 这个式子称
阅读全文
摘要:方向导数 接着偏导数的基础,我们可以引出方向导数。 方向导数和偏导数的区别就是:方向不同。仅此而已。 我们常说的偏导数无非就是对x轴求偏导,对y求偏导。而方向导数则是对x轴与y轴之间的某一新方向求导数。 还是用一下上次的图,这里我在x轴和y轴之间的平面上自己画了一个方向,并且与x轴夹角为α。 那么我
阅读全文