- 博客(39)
- 资源 (2)
- 收藏
- 关注
原创 88. 合并两个有序数组
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。输入:nums1 = [0], m = 0, nums2 = [1], n = 1。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并 [1,2,3] 和 [2,5,6]。解释:需要合并的数组是 [] 和 [1]。输出:[1,2,2,3,5,6]
2025-02-21 02:10:25
158
原创 303. 区域和检索 - 数组不可变
int sumRange(int i, int j) 返回数组 nums 中索引 left 和 right 之间的元素的 总和 ,包含 left 和 right 两点(也就是 nums[left] + nums[left + 1] + …计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right。NumArray(int[] nums) 使用数组 nums 初始化对象。最多调用 104 次 sumRange 方法。
2025-02-19 22:22:43
226
原创 559. N 叉树的最大深度
输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。输入:root = [1,null,3,2,4,null,5,6]最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。树的节点数目位于 [0, 104] 之间。遍历所有子节点,递归计算子节点的最大深度。取所有子节点深度的最大值,
2025-02-06 17:13:27
214
原创 938. 二叉搜索树的范围和
输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10。输入:root = [10,5,15,3,7,null,18], low = 7, high = 15。树中节点数目在范围 [1, 2 * 104] 内。所有 Node.val 互不相同。
2025-02-05 16:33:20
180
原创 2331. 计算布尔二叉树的值
非叶子节点 要么值为 2 要么值为 3 ,其中 2 表示逻辑或 OR ,3 表示逻辑与 AND。叶子节点 要么值为 0 要么值为 1 ,其中 0 表示 False ,1 表示 True。如果节点是个叶子节点,那么节点的 值 为它本身,即 True 或者 False。否则,计算 两个孩子的节点值,然后将该节点的运算符对两个孩子值进行 运算。AND 与运算节点的值为 False AND True = False。解释:根节点是叶子节点,且值为 false,所以我们返回 false。
2025-02-05 15:26:38
208
原创 226. 翻转二叉树
输入:root = [4,2,7,1,3,6,9]树中节点数目范围在 [0, 100] 内。输出:[4,7,2,9,6,3,1]输入:root = [2,1,3]输入:root = []输出:[2,3,1]
2025-02-05 14:47:26
151
原创 257. 二叉树的所有路径
输入:root = [1,2,3,null,5]输出:[“1->2->5”,“1->3”]树中节点的数目在范围 [1, 100] 内。叶子节点 是指没有子节点的节点。输入:root = [1]
2025-02-03 16:48:28
190
原创 637. 二叉树的层平均值
解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11。输入:root = [3,9,20,null,null,15,7]输出:[3.00000,14.50000,11.00000]输出:[3.00000,14.50000,11.00000]输入:root = [3,9,20,15,7]因此返回 [3, 14.5, 11]。树中节点数量在 [1, 104] 范围内。
2025-02-03 15:26:07
278
原创 700. 二叉搜索树中的搜索
你需要在 BST 中找到节点值等于 val 的节点。返回以该节点为根的子树。如果节点不存在,则返回 null。输入:root = [4,2,7,1,3], val = 2。输入:root = [4,2,7,1,3], val = 5。树中节点数在 [1, 5000] 范围内。root 是二叉搜索树。输出:[2,1,3]
2025-02-03 11:04:24
275
原创 543. 二叉树的直径
二叉树的 直径 是指树中任意两个节点之间最长路径的 长度。这条路径可能经过也可能不经过根节点 root。解释:3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。两节点之间路径的 长度 由它们之间边数表示。输入:root = [1,2,3,4,5]树中节点数目在范围 [1, 104] 内。输入:root = [1,2]
2025-02-01 18:28:26
102
原创 112.路径总和
判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22。输入:root = [1,2,3], targetSum = 5。解释:由于树是空的,所以不存在根节点到叶子节点的路径。不存在 sum = 5 的根节点到叶子节点的路径。解释:等于目标和的根节点到叶节点路径如上图所示。叶子节点 是指没有子节点的节点。
2025-02-01 14:56:41
257
原创 111. 二叉树的最小深度
输入:root = [2,null,3,null,4,null,5,null,6]输入:root = [3,9,20,null,null,15,7]最小深度是从根节点到最近叶子节点的最短路径上的节点数量。树中节点数的范围在 [0, 105] 内。说明:叶子节点是指没有子节点的节点。给定一个二叉树,找出其最小深度。
2025-02-01 11:20:30
157
原创 104. 二叉树的最大深度
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。输入:root = [3,9,20,null,null,15,7]树中节点的数量在 [0, 104] 区间内。输入:root = [1,null,2]
2025-01-25 22:41:05
114
原创 101. 对称二叉树
输入:root = [1,2,2,null,3,null,3]给你一个二叉树的根节点 root , 检查它是否轴对称。输入:root = [1,2,2,3,4,4,3]树中节点数目在范围 [1, 1000] 内。
2025-01-25 21:04:20
201
原创 100. 相同的树
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入:p = [1,2], q = [1,null,2]输入:p = [1,2,3], q = [1,2,3]输入:p = [1,2,1], q = [1,1,2]两棵树上的节点数目都在范围 [0, 100] 内。
2025-01-25 20:11:52
204
原创 94. 二叉树的中序遍历
输入:root = [1,null,2,3]树中节点数目在范围 [0, 100] 内。输入:root = [1]输入:root = []输出:[1,3,2]
2025-01-24 23:24:19
133
原创 674. 最长连续递增序列
连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], …尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。解释:最长连续递增序列是 [1,3,5], 长度为3。解释:最长连续递增序列是 [2], 长度为1。输入:nums = [1,3,5,4,7]输入:nums = [2,2,2,2,2]
2025-01-21 21:35:40
145
原创 205. 同构字符串
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。输入:s = “paper”, t = “title”输入:s = “egg”, t = “add”输入:s = “foo”, t = “bar”s 和 t 由任意有效的 ASCII 字符组成。
2025-01-21 02:32:35
162
原创 202. 快乐数
然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果n是快乐数就返回true;不是,则返回false。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程结果为1,那么这个数就是快乐数。
2025-01-20 01:27:22
116
原创 9.回文数
解释:从左向右读,为-121。从右向左读,为121-。因此它不是一个回文数。是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读,为01。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?例如,121是回文,而123不是。输入:x=-121。输入:x=121。
2025-01-20 00:10:40
173
原创 643. 子数组最大平均数
解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75。请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。输入:nums = [1,12,-5,-6,50,3], k = 4。给你一个由 n 个元素组成的整数数组 nums 和一个整数 k。任何误差小于 10-5 的答案都将被视为正确答案。输入:nums = [5], k = 1。输出:5.00000。
2025-01-03 01:06:58
215
原创 459. 重复的子字符串
解释: 可由子串 “abc” 重复四次构成。(或子串 “abcabc” 重复两次构成。给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。输入: s = “abcabcabcabc”解释: 可由子串 “ab” 重复两次构成。输入: s = “abab”输入: s = “aba”s 由小写英文字母组成。
2025-01-02 23:24:13
126
原创 485. 最大连续 1 的个数
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.输入:nums = [1,1,0,1,1,1]输入:nums = [1,0,1,1,0,1]nums[i] 不是 0 就是 1.
2024-12-30 02:35:31
139
原创 118. 杨辉三角
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。输入: numRows = 5。输入: numRows = 1。
2024-12-30 01:17:48
172
原创 125. 验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。给你一个字符串 s,如果它是 回文串 ,返回 true;输入: s = “A man, a plan, a canal: Panama”解释:“amanaplanacanalpanama” 是回文串。解释:在移除非字母数字字符之后,s 是一个空字符串 “”。由于空字符串正着反着读都一样,所以是回文串。解释:“raceacar” 不是回文串。输入:s = “race a car”输入:s = " "
2024-12-25 14:41:25
144
原创 338. 比特位计数
给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。很容易就能实现时间复杂度为 O(n log n) 的解决方案,你可以在线性时间复杂度 O(n) 内用一趟扫描解决此问题吗?你能不使用任何内置函数解决此问题吗?(如,C++ 中的 __builtin_popcount )输出:[0,1,1,2,1,2]输出:[0,1,1]
2024-12-25 12:59:36
134
原创 283.移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。ps:也可以逆向遍历,从后往前,检测到0时便移动到size-count的地方,移动次数会更少。请注意 ,必须在不复制数组的情况下原地对数组进行操作。输入: nums = [0,1,0,3,12]进阶:你能尽量减少完成的操作次数吗。输出: [1,3,12,0,0]输入: nums = [0]
2024-12-22 12:53:54
206
原创 67. 二进制求和
给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。输入:a = “1010”, b = “1011”a 和 b 仅由字符 ‘0’ 或 ‘1’ 组成。输入:a = “11”, b = “1”字符串如果不是 “0” ,就不含前导零。下有两个版本,后者更加简洁。输出:“10101”
2024-08-20 00:50:41
194
原创 169. 多数元素
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。你可以假设数组是非空的,并且给定的数组总是存在多数元素。输入:nums = [2,2,1,1,1,2,2]输入:nums = [3,2,3]
2024-08-08 09:25:41
197
原创 203. 移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。输入:head = [1,2,6,3,4,5,6], val = 6。输入:head = [7,7,7,7], val = 7。列表中的节点数目在范围 [0, 104] 内。输入:head = [], val = 1。输出:[1,2,3,4,5]
2024-07-31 00:16:33
123
原创 83. 删除排序链表中的重复元素
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次。返回 已排序的链表。输入:head = [1,1,2,3,3]链表中节点数目在范围 [0, 300] 内。输入:head = [1,1,2]题目数据保证链表已经按升序 排列。输出:[1,2,3]
2024-07-29 15:48:27
413
原创 21.合并两个有序链表
输入:l1 = [1,2,4], l2 = [1,3,4]新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [], l2 = [0]两个链表的节点数目范围是 [0, 50]输入:l1 = [], l2 = []l1 和 l2 均按 非递减顺序 排列。输出:[1,1,2,3,4,4]
2024-07-28 22:22:25
147
转载 相对路径和绝对路径的区别与使用
参考资料:http://www.wangqi.net/n357c51.aspx如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传到服务器上就总是出现看不到图片,css样式表失效等错误。这种情况下多半是由于你使用了错误的路径,在应该使用相对路径的地方使用了绝对路径,导致浏览器无法在指定的位置打开指定的文件。下面我们就来谈一下最让初学者头疼的相对路径与绝对路径的区别问题。什么是绝对路径:大家都知道,在我们平时使用计算机时要找到需要的文件就必须知道文.
2021-04-13 19:34:58
713
原创 记一次数据库课后作业:SQL查询应用
本文仅学习使用创建关系仅简单创建了几个关于工程的关系create table S --创建供应商关系( S# varchar(10), --供应商号码 SNAME varchar(10), --供应商名字 SCITY varchar(10), --供应商城市 primary key(S#)); --主码为S# insert into S values('S1','东','Nanjing');insert into S.
2021-04-13 09:52:17
1416
1
原创 信息隐藏基本原理
一些名词A打算秘密传递一些信息给B,需要从一个随机消息源中随机选取一个无关紧要的消息C,当这个消息公开传递时,不会引起怀疑,C为载体对象。把需要秘密传递的信息m隐藏到载体对象c中,此时,载体对象c就变为伪装对象c’秘密信息的嵌入过程需要密钥,其中利用密钥来实现秘密信息的隐藏是信息嵌入算法,此密钥称为伪装密钥 (区别于加密秘钥)。实现信息隐藏的基本要求C正常且不会引起怀疑。C’与C无法区分,无论是从感官上还是从计算机分析上。不可视通信的安全性取决于第三方有没有能力将载体对象和伪装对象区别开来。
2021-04-08 11:09:58
3484
1
原创 隐蔽通道、图像基础
声明:本文章属于书本、PPT部分知识搬运,仅供学习/自用隐蔽通道计算机系统中的隐蔽通道:在多级安全水平的系统环境中,那些根本不是专门设计的也不打算用来传输消息的通信路径称为隐蔽通道。这些通道在位某一程序提供服务时可以被一个不可信的程序用来向它的控制者提供信息。计算机系统中存在的安全漏洞也可以被利用作为秘密信道传递信息。可视密码把要隐藏的密钥信息通过算法隐藏到两个或多个子密钥图片中。每一张图上都随机分布的黑点和白点,把所有图片叠加即可恢复出原有的信息。主要特点:恢复秘密图像时不需要任何复杂的.
2021-04-08 09:16:59
992
1
原创 2021-04-05 c++程序设计原理与实践持续学习笔记:第三章对象、类型和值。
对象、类型和值 笔记为了读取某些东西,我们需要从某个地方读入;我们需要在计算机内存中的某个地方放置读取的东西。这样一个“地方”称为一个对象。一个对象是一个具有某种类型的存储区域。一个有名字的对象称为一个变量。对象:用来存储数据的“位置”。类型用来指定可以放置什么样的信息。#include<iostream>#include<string>#include<vector>#include<algorithm>#include<cmath&
2021-04-06 22:09:55
192
1
原创 2021-4-5 C++程序设计原理与实践复习
C++程序设计原理与实践复习人类读/写:源代码,程序文本 : .cpp .h计算机可以执行:可执行代码、目标代码、机器代码 : .obj(windows中) .o(Unix中)“” ,其中”用来终止字符串编译器将源代码转换为目标代码。#include "std_lib_facilities.h"int main() { //C++从main函数开始执行 cout << "Hello,World!\n"; //输出Hello,World! return 0;}其中1
2021-04-05 16:12:52
303
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人