07 2021 档案

摘要:数据结构入门 数组: 1. 两数之和 217. 存在重复元素 53. 最大子序和 88. 合并两个有序数组 350. 两个数组的交集 II 121. 买卖股票的最佳时机 566. 重塑矩阵 118. 杨辉三角 36. 有效的数独 73. 矩阵置零 字符串: 383. 赎金信 387. 字符串中的第一 阅读全文
posted @ 2021-07-30 11:19 尖子 阅读(169) 评论(0) 推荐(0)
摘要:题目来源:112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [5,4,8,11,n 阅读全文
posted @ 2021-07-30 11:18 尖子 阅读(64) 评论(0) 推荐(0)
摘要:题目来源:226. 翻转二叉树 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 /** * Definition for a binary tree node. * function TreeNode( 阅读全文
posted @ 2021-07-30 10:02 尖子 阅读(66) 评论(0) 推荐(0)
摘要:题目来源:171. Excel表列序号 给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 1: 输入: "A" 输出: 1 示例 2: 输入: "AB" 输出: 28 示 阅读全文
posted @ 2021-07-30 09:41 尖子 阅读(157) 评论(0) 推荐(0)
摘要:题目来源:101. 对称二叉树 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 / 阅读全文
posted @ 2021-07-29 14:51 尖子 阅读(63) 评论(0) 推荐(0)
摘要:题目来源:104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 阅读全文
posted @ 2021-07-29 13:48 尖子 阅读(45) 评论(0) 推荐(0)
摘要:题目来源:102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层序遍历结果: [ [3], [9,20], [15,7] 阅读全文
posted @ 2021-07-29 11:52 尖子 阅读(59) 评论(0) 推荐(0)
摘要:题目来源:1104. 二叉树寻路 在一棵无限的二叉树上,每个节点都有两个子节点,树中的节点 逐行 依次按 “之” 字形进行标记。 如下图所示,在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行标记; 而偶数行(即,第二行、第四行、第六行……)中,按从右到左的顺序进行标记。 给你树上某 阅读全文
posted @ 2021-07-29 10:44 尖子 阅读(57) 评论(0) 推荐(0)
摘要:题目来源:863. 二叉树中所有距离为 K 的结点 给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。 返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。 深度优先搜索 + 哈希表 /** * Definition f 阅读全文
posted @ 2021-07-28 09:43 尖子 阅读(75) 评论(0) 推荐(0)
摘要:题目来源:面试题 17.21. 直方图的水量 给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 感谢 Ma 阅读全文
posted @ 2021-07-27 16:44 尖子 阅读(80) 评论(0) 推荐(0)
摘要:题目来源:1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的 阅读全文
posted @ 2021-07-27 15:37 尖子 阅读(56) 评论(0) 推荐(0)
摘要:题目来源:671. 二叉树中第二小的节点 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。 更正式地说,root.val = min(root.left.val, root.right.v 阅读全文
posted @ 2021-07-27 09:44 尖子 阅读(63) 评论(0) 推荐(0)
摘要:题目来源:1893. 检查是否区域内所有整数都被覆盖 给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。 如果闭区间 [left, right] 内每个整数都被 阅读全文
posted @ 2021-07-23 10:32 尖子 阅读(52) 评论(0) 推荐(0)
摘要:题目来源:138. 复制带随机指针的链表 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针 阅读全文
posted @ 2021-07-22 10:12 尖子 阅读(55) 评论(0) 推荐(0)
摘要:题目来源:剑指 Offer 52. 两个链表的第一个公共节点 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 方法一:哈希集合 /** * Definition for singly-linked list. * function ListNode(val) 阅读全文
posted @ 2021-07-21 09:05 尖子 阅读(60) 评论(0) 推荐(0)
摘要:代码来源:Python爬取笔趣阁小说,有趣又实用 学习了基础的语法,然后网上看到有人分享利用python爬取小说,自己拷贝了代码尝试了一下。 1. 环境准备 安装 BeautifulSoup4 和 lxml & C:/Python39/python.exe -m pip install --user 阅读全文
posted @ 2021-07-20 11:51 尖子 阅读(275) 评论(0) 推荐(0)
摘要:题目来源:1877. 数组中最大数对和的最小值 一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对和 。 比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(1+5, 2+3, 4+4) = max(6, 5, 8) 阅读全文
posted @ 2021-07-20 09:31 尖子 阅读(89) 评论(0) 推荐(0)
摘要:题目来源:1838. 最高频元素的频数 元素的 频数 是该元素在一个数组中出现的次数。 给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。 执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。 /** * @p 阅读全文
posted @ 2021-07-19 09:47 尖子 阅读(71) 评论(0) 推荐(0)
摘要:题目来源:145. 二叉树的后序遍历 /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val undefined ? 0 : val) * this.left 阅读全文
posted @ 2021-07-16 14:44 尖子 阅读(76) 评论(0) 推荐(0)
摘要:题目来源:94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val und 阅读全文
posted @ 2021-07-16 10:17 尖子 阅读(85) 评论(0) 推荐(0)
摘要:题目来源:剑指 Offer 53 - I. 在排序数组中查找数字 I 统计一个数字在排序数组中出现的次数。 /** * @param {number[]} nums * @param {number} target * @return {number} */ var search = functio 阅读全文
posted @ 2021-07-16 10:04 尖子 阅读(62) 评论(0) 推荐(0)
摘要:题目来源:144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入 阅读全文
posted @ 2021-07-15 10:26 尖子 阅读(71) 评论(0) 推荐(0)
摘要:题目来源:232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int pee 阅读全文
posted @ 2021-07-15 10:12 尖子 阅读(54) 评论(0) 推荐(0)
摘要:题目来源:1846. 减小和重新排列数组后的最大元素 给你一个正整数数组 arr 。请你对 arr 执行一些操作(也可以不进行任何操作),使得数组满足以下条件: arr 中 第一个 元素必须为 1 。 任意相邻两个元素的差的绝对值 小于等于 1 ,也就是说,对于任意的 1 <= i < arr.le 阅读全文
posted @ 2021-07-15 09:51 尖子 阅读(68) 评论(0) 推荐(0)
摘要:题目来源:20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 方法一:栈 /** * @param {string} s * @return { 阅读全文
posted @ 2021-07-14 11:20 尖子 阅读(83) 评论(0) 推荐(0)
摘要:题目来源:83. 删除排序链表中的重复元素 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。 返回同样按升序排列的结果链表。 方法一:一次遍历 /** * Definition for singly-linked list. * func 阅读全文
posted @ 2021-07-14 10:53 尖子 阅读(90) 评论(0) 推荐(0)
摘要:题目来源:1818. 绝对差值和 给你两个正整数数组 nums1 和 nums2 ,数组的长度都是 n 。 数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|(0 <= i < n)的 总和(下标从 0 开始)。 你可以选用 nums1 中的 任 阅读全文
posted @ 2021-07-14 10:31 尖子 阅读(160) 评论(0) 推荐(0)
摘要:题目来源:206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] /* 阅读全文
posted @ 2021-07-13 14:26 尖子 阅读(82) 评论(0) 推荐(0)
摘要:题目来源:203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 阅读全文
posted @ 2021-07-13 14:14 尖子 阅读(52) 评论(0) 推荐(0)
摘要:题目来源:218. 天际线问题 城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。 每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heigh 阅读全文
posted @ 2021-07-13 13:41 尖子 阅读(97) 评论(0) 推荐(0)
摘要:题目来源:21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[ 阅读全文
posted @ 2021-07-12 10:03 尖子 阅读(81) 评论(0) 推荐(0)
摘要:题目来源:141. 环形链表 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:p 阅读全文
posted @ 2021-07-12 09:50 尖子 阅读(59) 评论(0) 推荐(0)
摘要:题目来源:275. H 指数 II 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 。编写一个方法,计算出研究者的 h 指数。 h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共 阅读全文
posted @ 2021-07-12 09:22 尖子 阅读(96) 评论(0) 推荐(0)
摘要:题目来源:242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 方法一:排序 /** * @param {string} s * @param {string} t * @return {boolean} */ var isAnagram = 阅读全文
posted @ 2021-07-11 11:18 尖子 阅读(62) 评论(0) 推荐(0)
摘要:题目来源:383. 赎金信 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。 (题目说明:为了不暴露赎金信字迹,要从杂志上搜索 阅读全文
posted @ 2021-07-11 11:00 尖子 阅读(52) 评论(0) 推荐(0)
摘要:题目来源:387. 字符串中的第一个唯一字符 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 /** * @param {string} s * @return {number} */ var firstUniqChar = function(s) { con 阅读全文
posted @ 2021-07-11 10:35 尖子 阅读(41) 评论(0) 推荐(0)
摘要:题目来源:274. H 指数 给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。 h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 阅读全文
posted @ 2021-07-11 10:11 尖子 阅读(166) 评论(0) 推荐(0)
摘要:Python3 基础语法 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码: # -*- coding: cp-1252 -*- 上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码, 阅读全文
posted @ 2021-07-09 18:19 尖子 阅读(119) 评论(0) 推荐(0)
摘要:题目来源:73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最 阅读全文
posted @ 2021-07-09 11:35 尖子 阅读(80) 评论(0) 推荐(0)
摘要:题目来源:36. 有效的数独 请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空格内已 阅读全文
posted @ 2021-07-09 10:45 尖子 阅读(83) 评论(0) 推荐(0)
摘要:题目来源:面试题 17.10. 主要元素 数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。 方法一:Boyer-Moore 投票算法 /** * @param {number[ 阅读全文
posted @ 2021-07-09 09:29 尖子 阅读(103) 评论(0) 推荐(0)
摘要:题目来源:118. 杨辉三角 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]Python3 clas 阅读全文
posted @ 2021-07-08 11:31 尖子 阅读(67) 评论(0) 推荐(0)
摘要:题目来源:566. 重塑矩阵 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填 阅读全文
posted @ 2021-07-08 11:09 尖子 阅读(74) 评论(0) 推荐(0)
摘要:题目来源:930. 和相同的二元子数组 给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。 子数组 是数组的一段连续部分。 方法一:哈希表 var numSubarraysWithSum = function(nums, goal) { l 阅读全文
posted @ 2021-07-08 10:40 尖子 阅读(77) 评论(0) 推荐(0)
摘要:题目来源:121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大 阅读全文
posted @ 2021-07-07 11:17 尖子 阅读(72) 评论(0) 推荐(0)
摘要:题目来源:350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集。 方法一:哈希表 /** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */ var intersect = fu 阅读全文
posted @ 2021-07-07 10:13 尖子 阅读(77) 评论(0) 推荐(0)
摘要:题目来源:1711. 大餐计数 大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。 你可以搭配 任意 两道餐品做一顿大餐。 给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i​​​​​​​​​​​​​​ 道餐品的美味程度,返回你可以 阅读全文
posted @ 2021-07-07 09:45 尖子 阅读(64) 评论(0) 推荐(0)
摘要:题目来源:1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 方法一:暴力枚举 阅读全文
posted @ 2021-07-06 10:54 尖子 阅读(92) 评论(0) 推荐(0)
摘要:题目来源:1418. 点菜展示表 给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 阅读全文
posted @ 2021-07-06 10:20 尖子 阅读(85) 评论(0) 推荐(0)
摘要:前面介绍的生成列表squares 的方式包含三四行代码, 而列表解析让你只需编写一行代码就能生成这样的列表。 列表解析 将for 循环和创建新元素的代码合并成一行, 并自动附加新元素。 面向初学者的书并非都会介绍列表解析, 这里之所以介绍列表解析, 是因为等你开始阅读他人编写的代码时, 很可能会遇到 阅读全文
posted @ 2021-07-05 18:23 尖子 阅读(176) 评论(0) 推荐(0)
摘要:题目来源:53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 方法一:动态规划 /** * @param {number[]} nums * @return {number} */ var maxSubArray = funct 阅读全文
posted @ 2021-07-05 14:23 尖子 阅读(61) 评论(0) 推荐(0)
摘要:题目来源:217. 存在重复元素 给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 方法一:排序 /** * @param {number[]} nums * @return {boolean} */ 阅读全文
posted @ 2021-07-05 11:56 尖子 阅读(74) 评论(0) 推荐(0)
摘要:题目来源:645. 错误的集合 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数,再找到丢失 阅读全文
posted @ 2021-07-04 11:52 尖子 阅读(71) 评论(0) 推荐(0)
摘要:题目来源:451. 根据字符出现频率排序 给定一个字符串,请将字符串里的字符按照出现的频率降序排列。 /** * @param {string} s * @return {string} */ var frequencySort = function(s) { let map = new Map() 阅读全文
posted @ 2021-07-03 16:55 尖子 阅读(102) 评论(0) 推荐(0)
摘要:题目来源:1833. 雪糕的最大数量 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑。 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格。Tony 一共有 coins 现金可以用于消费,他想要买尽可能多的雪糕。 给你价格数 阅读全文
posted @ 2021-07-02 09:32 尖子 阅读(117) 评论(0) 推荐(0)
摘要:题目来源:LCP 07. 传递信息 小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下: 有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0 每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 阅读全文
posted @ 2021-07-01 11:39 尖子 阅读(145) 评论(0) 推荐(0)