09 2021 档案
摘要:Leetcode128. 最长连续序列 题目描述 /** * 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 * * 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 * */ 思路分析 计算一个数组中连续数字的最长序列长度,可以使用优化
阅读全文
摘要:Leetcode105. 从前序与中序遍历序列构造二叉树 题目描述 /** * 给定一棵树的前序遍历 preorder 与中序遍历 inorder。 * <p> * 请构造二叉树并返回其根节点。 */ 思路分析 已知前序遍历和中序遍历的数组,构造其二叉树 根据前序遍历和中序遍历的特点可知,前序遍历在
阅读全文
摘要:张量基本运算 说明 张量运算包括算术、线性代数、矩阵操作(转置、索引、切片)、采样等。 这些操作中的每一个都可以在 GPU 上运行(速度通常比在 CPU 上更高)。 如果使用 Colab,转到运行时 > 更改运行时类型 > GPU 来分配 GPU。 默认情况下,张量是在 CPU 上创建的。我们需要使
阅读全文
摘要:张量及其初始化 介绍 张量是一种特殊的数据结构,与数组和矩阵非常相似。 在 PyTorch 中,我们使用张量对模型的输入和输出以及模型的参数进行编码。 张量类似于NumPy 的ndarray,不同之处在于张量可以在 GPU 或其他硬件加速器上运行。 事实上,张量和 NumPy 数组通常可以共享相同的
阅读全文
摘要:Leetcode122. 买卖股票的最佳时机 II 题目描述 /** * 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 * * 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 * * 注意:你不能同时参与多笔交易
阅读全文
摘要:Leetcode120. 三角形最小路径和 题目描述 /** * 给定一个三角形 triangle ,找出自顶向下的最小路径和。 * <p> * 每一步只能移动到下一行中相邻的结点上。 * 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。 * 也
阅读全文
摘要:Leetcode121. 买卖股票的最佳时机 题目描述 /** * 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 * * 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。 * 设计一个算法来计算你所能获取的最
阅读全文
摘要:Leetcode119. 杨辉三角 II 题目描述 /** * 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 * * 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 */ 思路分析 首先搞明白杨辉三角的构成,及第一层有一个数字,第二层有2个数字,第n层有n个
阅读全文
摘要:Leetcode118.杨辉三角 题目描述 /** * * 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 * <p> * 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 */ 思路分析 杨辉三角,即每一层的第一个数字和最后一个数字都为1,其他数字为上一层两数字之
阅读全文
摘要:Leetcode117. 填充每个节点的下一个右侧节点指针 II 题目描述 /** * 给定一个二叉树 * * 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。 * 如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 * * 初始状态下,所有 next 指针都被设置为 N
阅读全文
摘要:LeetCode116. 填充每个节点的下一个右侧节点指针 题目描述 /** * 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点 * * 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。 * 如果找不到下一个右侧节点,则将 next 指针设置为 NULL。
阅读全文
摘要:Leetcode100.相同的树 题目描述 /** * 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 * * 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 */ 思路分析 判断两棵树是否相同,既要判断树的结构是否相同,还有判断对应位置的节点值是否相
阅读全文
摘要:Leetcode114. 二叉树展开为链表 题目描述 /** * 给你二叉树的根结点 root ,请你将它展开为一个单链表: * <p> * 展开后的单链表应该同样使用 TreeNode , * 其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 * 展开后的单链表应该与二
阅读全文
摘要:Leetcode113. 路径总和 II 题目描述 /** * 给你二叉树的根节点 root 和一个整数目标和 targetSum , * 找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 * * 叶子节点 是指没有子节点的节点。 * */ 思路分析 计算从根节点到叶子节点的路径总和是否
阅读全文
摘要:Leetcode112. 路径总和 题目描述 /** * * 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 * * 叶子节点 是指没有子节点的节点。 * */ 思路
阅读全文
摘要:Leetcode111. 二叉树的最小深度 题目描述 /** * 给定一个二叉树,找出其最小深度。 * * 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 * * 说明:叶子节点是指没有子节点的节点。 */ 思路分析 求二叉树的最小深度,可以使用深度优先的思路 定义一个变量保存二叉树的最小
阅读全文
摘要:Leetcode110.平衡二叉树 题目描述 /** * 给定一个二叉树,判断它是否是高度平衡的二叉树。 * * 本题中,一棵高度平衡二叉树定义为: * * 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 */ 思路分析 高度平衡的二叉树,即平衡二叉树,平衡二叉树的左右子树的高度值
阅读全文
摘要:Leetcode109. 有序链表转换二叉搜索树 题目描述 /** * 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 * <p> * 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 */ 思路分析 将有序链表转换为一棵自平衡的二叉
阅读全文
摘要:Leetcode108. 将有序数组转换为二叉搜索树 题目描述 /** * * 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 * * 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 * */ 思路分析
阅读全文
摘要:Leetcode107. 二叉树的层序遍历 II 题目描述 /** * * 给定一个二叉树,返回其节点值自底向上的层序遍历。 * * (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) */ 思路分析 二叉树的层序遍历,及一层一层的遍历二叉树,将每一层遍历的结果存储到集合中 因此需要维护一个
阅读全文
摘要:Leetcode104.二叉树的最大深度 题目描述 /** * * 给定一个二叉树,找出其最大深度。 * * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 * * 说明: 叶子节点是指没有子节点的节点。 */ 思路分析 求二叉树的最大深度,可以使用递归的思路 二叉树的最大深度为左子树和右
阅读全文
摘要:Leetcode103. 二叉树的锯齿形层序遍历 题目描述 /** * * 给定一个二叉树,返回其节点值的锯齿形层序遍历。 * (即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 */ 思路分析 对二叉树锯齿形层序遍历,实质为对二叉树层序遍历的扩展 使用一个单向队列记录每一层
阅读全文
摘要:Leetcode102. 二叉树的层序遍历 题目描述 /** * 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 * (即逐层地,从左到右访问所有节点)。 */ 思路分析 二叉树的层序遍历,及一层一层的遍历二叉树,将每一层的节点值记录在集合中,再将每一层的结果记录到容器并返回 由题意,使用广
阅读全文
摘要:Leetcode101.对称二叉树 题目描述 给定一个二叉树,检查它是否是镜像对称的。 思路分析 二叉树,及每一个节点的子节点不超过两个 题目要求检查一个二叉树是否是镜像对称的,及要检查它本身及其它的每一个子节点是否也镜像对称 因此可以使用递归的思路 递归的遍历每一个节点,判断与其镜像对称的另一个节
阅读全文
摘要:leetcode125. 验证回文串 题目描述 /** * 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 * * 说明:本题中,我们将空字符串定义为有效的回文串。 */ 思路分析 验证一个字符串是否为一个回文串,首先明确什么是回文串,及首尾字母依次对应相同的字符串
阅读全文
摘要:线程相关概念 程序:是为完成特定任务,用某种语言编写的一组指令的集合,简单的说,就是写的代码 进程 进程是指运行中的程序 进程是程序的一次执行过程,或是正在运行的一个程序,是动态过程,有它自身的产生,存在和消亡的过程 线程 线程是由程序创建的,是进程的一个实体 一个进程可以拥有多个线程 单线程:同一
阅读全文