- 博客(124)
- 问答 (1)
- 收藏
- 关注
原创 LeetCode——动态规划篇(六)
是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。以这种方法绘制线条,并返回可以绘制的最大连线数。,找到其中最长严格递增子序列的长度。给定一个未经排序的整数数组,找到最长且。在两条独立的水平线上按给定的顺序写下。是这两个字符串所共同拥有的子序列。现在,可以绘制一些连接两个数字。、长度最长的子数组的长度。,返回这两个字符串的最长。,并返回该序列的长度。
2023-10-15 19:16:20
340
原创 LeetCode——动态规划(五)
你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。返回你可以从这笔交易中获取的最大利润。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。在每一天,你可以决定是否购买和/或出售股票。设计一个算法来计算你所能获取的最大利润。
2023-10-13 17:41:36
335
原创 LeetCode——动态规划(四)
一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,是一个整数,其值等于另一个整数的平方;不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。给定一个代表每个房屋存放金额的非负整数数组,计算你。
2023-10-07 17:56:39
361
原创 LeetCode——动态规划(三)
请你计算并返回可以凑成总金额的硬币组合数。改为:一步一个台阶,两个台阶,三个台阶,.......,直到 m个台阶。你有多少种不同的方法可以爬到楼顶呢?返回可以通过上述方法构造的、运算结果等于。题目数据保证结果符合 32 位带符号整数。题目数据保证答案符合 32 位整数范围。,然后串联起所有整数,可以构造一个。表示不同面额的硬币,另给一个整数。问有多少种不同的方法可以爬到楼顶呢?假设每一种面额的硬币有无限个。的最大子集的长度,该子集中。向数组中的每个整数前添加。给你一个非负整数数组。
2023-09-26 15:01:00
205
原创 LeetCode——动态规划篇(二)
请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。返回满足题意的二叉搜索树的种数。,然后将它们一起粉碎。假设石头的重量分别为。),并使这些整数的乘积最大化。如果没有石头剩下,就返回。个节点组成且节点值从。有一堆石头,用整数数组。你可以获得的最大乘积。
2023-09-14 20:56:38
196
原创 LeetCode——动态规划篇(一)
刷题顺序及思路来源于代码随想录,网站(通常用F(n)表示)形成的序列称为。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(n) = F(n - 1) + F(n - 2),其中 n > 1给定n,请计算F(n)。假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0。
2023-09-13 14:06:13
216
原创 LeetCode——贪心篇(三)
有一些球形气球贴在一堵用 XY 平面表示的墙面上。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。处射出一支箭,若有一个气球的直径的开始和结束坐标为。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。给定一个二叉树,我们在树的节点上安装摄像头。你不知道气球的确切 y 坐标。计算监控树的所有节点所需的最小摄像头数量。返回一个表示每个字符串片段的长度的列表。请你合并所有重叠的区间,并返回。可以射出的弓箭的数量。
2023-09-10 17:42:12
248
原创 Redis总结(三)
缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
2023-09-08 12:52:44
132
原创 KamaCoder(四)
然而,由于城市规划的限制,只允许将区域按横向或纵向划分成两个子区域,而且每个子区域都必须包含一个或多个区块。但是,用户可能会输入复杂的路径,包括"/../"、"//"、"/./"或者多个连续的"/"等冗余部分,这会导致路径不太直观和容易理解。在一个城市区域内,被划分成了n * m个连续的区块,每个区块都拥有不同的权值,代表着其土地价值。目前,有两家开发公司,A 公司和 B 公司,希望购买这个城市区域的土地。输入文件包含多组测试数据,每个数据占一行,仅包含一个正整数 n ,表示小张手上的空汽水瓶数。
2023-09-07 21:32:37
270
原创 Redis总结(二)
Redis单线程是指接收客户端---解析请求---进行数据读写请求操作---发送数据到客户顿这个过程是由一个线程(主线程)来完成的。但Redis程序并不是单线程的,Redis在启动的时候,是会启动后台程序(BIO)的:1.Redis2.6版本,会启动2个线程,分别处理文件关闭、aof刷盘这两个任务2.Redis4.0版本后,新增了一个新的后台程序,实现数据的异步惰性删除,解决删除数据效率比较低的问题3.Redis6版本线程模型,网络 I/O 和命令处理都是单线程。
2023-09-07 17:14:57
421
原创 Redis总结(一)
Redis,是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存、消息队列、分布式锁等场景。Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流),并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。除此之外,Redis 还支持。
2023-09-07 01:37:45
490
原创 LeetCode——贪心篇(二)
如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付。如果你能给每位顾客正确找零,返回。表示队列中一些人的属性(不一定按顺序)。你从其中的一个加油站出发,开始时油箱为空。请你给每个孩子分发糖果,计算并返回需要准备的。返回的队列应该格式化为数组。假设有打乱顺序的一群人站成一个队列,数组。顾客排队购买你的产品,(按账单。每位顾客只买一杯柠檬水,然后向你付。注意,一开始你手头没有任何零钱。支付的顺序)一次购买一杯。是排在队列前面的人)。
2023-09-06 11:10:52
321
原创 LeetCode——贪心篇(一)
仅有一个元素或者含两个不等元素的序列也视作摆动序列。假设你是一位很棒的家长,想要给你的孩子们一些小饼干。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。在每一天,你可以决定是否购买和/或出售股票。,这是能让孩子们满足胃口的饼干的最小尺寸;数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。
2023-09-05 16:31:11
548
原创 KamaCoder(三)
输入两个整数n, m,从数列 1, 2, ..., n 中随意取几个数字,使其和等于 m,要求将所有的可能的组合列出来。3. 在数轴上移动到当前位置数值的两倍:即 x = x * 2。现这个点在原点,求将这个点移动到位置 X 所需要的最少移动次数。输入只有一行,第一个数字为 n,第二个数字为 m。1. 在数轴上向前移动一格,即 x = x + 1。2. 在数轴上向后移动一格,即 x = x - 1。在数轴上,有一个点(坐标为x)可以移动。输入仅有一个整数,代表位置 X。输出一个整数,代表最少移动次数。
2023-09-04 09:33:25
121
原创 LeetCode——回溯篇(三)
假定所有机票至少存在一种合理的行程。且所有的机票 必须都用一次 且 只能用一次。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。表示飞机出发和降落的机场地点。(肯尼迪国际机场)出发的先生,所以该行程必须从。的棋盘上,并且使皇后彼此之间不能相互攻击。编写一个程序,通过填充空格来解决数独问题。给定一个可包含重复数字的序列。给定一个不含重复数字的数组。的棋子放置方案,该方案中。返回所有不重复的全排列。每一种解法包含一个不同的。
2023-08-30 12:55:47
279
原创 LeetCode——回溯篇(二)
数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。,找出并返回所有该数组中不同的递增子序列,递增子序列中。,用以表示一个 IP 地址,返回所有可能的。返回的解集中,子集可以按。返回该数组所有可能的子集(幂集)。分割成一些子串,使每个子串都是。是正着读和反着读都一样的字符串。正好由四个整数(每个整数位于。之间组成,且不能含有前导。给定一个只包含数字的字符串。所有可能的分割方案。,这些地址可以通过在。
2023-08-29 15:29:12
441
原创 LeetCode——回溯篇(一)
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。该列表不能包含相同的组合两次,组合可以以任何顺序返回。如果至少一个数字的被选数量不同,则两种组合是不同的。的字符串,返回所有它能表示的字母组合。中的每个数字在每个组合中只能使用。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。给定一个候选人编号的集合。解集不能包含重复的组合。所有可能的有效组合的列表。中所有可以使数字和为。
2023-08-27 17:13:10
372
原创 LeetCode——二叉树篇(九)
改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。通过修剪二叉搜索树,使得所有节点的值在。的新值等于原树中大于或等于。排列,请你将其转换为一棵。给你二叉搜索树的根节点。
2023-08-25 12:04:17
1442
原创 KamaCoder(二)
定义一次大鱼吃小鱼的操作为:对于每一条鱼,它在每一次操作时都会吃掉右边比自己小的一条鱼,值得注意的是,在同一次操作中,每条鱼吃掉比自己小的鱼是同时发生的。举例:假设有三条鱼,体积分别为 [5, 4, 3],在一次操作中,4 吃 3,5 吃 4,最终只剩下 [5] 一条鱼。现有一个 m * n的网格,每个网格上都有一个非零整数,每次只能向下或者向右移动一格,计算从左上开始移动到右下的所有路径上数字的最大和。给定一个空的二维整型数组 array[n][m],根据下图的填充规则填充该二维数组。
2023-08-24 16:06:23
138
原创 LeetCode——二叉树篇(八)
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(
2023-08-23 14:31:53
364
原创 LeetCode——二叉树片(七)
想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;返回以该节点为根的子树。给你一个含重复值的二叉搜索树(BST)的根节点。null 的节点将直接作为新二叉树的节点。差值是一个正数,其数值等于两值之差的绝对值。,判断其是否是一个有效的二叉搜索树。合并过程必须从两个树的根节点开始。给定二叉搜索树(BST)的根节点。给你一个二叉搜索树的根节点。(即,出现频率最高的元素)。给你一个二叉树的根节点。
2023-08-22 15:11:31
246
原创 LeetCode——二叉树篇(六)
是同一棵树的后序遍历,请你构造并返回这颗。,请构造二叉树并返回其根节点。给定一个不重复的整数数组。是二叉树的中序遍历,
2023-08-21 14:44:18
224
原创 LeetCode——二叉树篇(五)
给定二叉树的根节点root,返回所有左叶子之和。给定一个二叉树的root,请找出该二叉树的节点的值。假设二叉树中至少有一个节点。
2023-08-19 14:46:15
279
原创 LeetCode——二叉树篇(四)
101. 对称二叉树100. 相同的树572. 另一棵树的子树222. 完全二叉树的节点个数110. 平衡二叉树257. 二叉树的所有路
2023-08-18 17:27:45
411
原创 KamaCoder(一)
现有一个数组 yCutting 用于表示在水平方向上用于切分矩形的切线位置,另有一个数组 xCutting 表示在垂直方向上用于切分矩形的切线位置。给定一个被压缩过的字符串,压缩规则如下: 对于字符串中连续的m个相同字符串S将会压缩为[m|S](m为一个整数且0
2023-08-17 17:28:03
205
原创 LeetCode ——二叉树篇(三)
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为。,其所有叶子节点都在同一层,每个父节点都有两个子节点。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。是指从根节点到最远叶子节点的最长路径上的节点数。,翻转这棵二叉树,并返回其根节点。给定一个二叉树,找出其最小深度。叶子节点是指没有子节点的节点。给你一棵二叉树的根节点。
2023-08-16 17:59:03
372
原创 LeetCode ACM模式——二叉树篇(二)
想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历), 以数组的形式返回每一层节点的平均值。(即逐层地,从左到右访问所有节点)。,请找出该二叉树中每一层的最大值。给定一个 N 叉树,返回其节点值的。给定一个非空二叉树的根节点。(即从左到右,逐层遍历)。以内的答案可以被接受。给定一棵二叉树的根节点。
2023-08-15 21:33:55
505
原创 LeetCode ACM模式——栈与队列篇
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。返回一个表示表达式值的整数。会选择两个相邻且相同的字母,并删除它们。滑动窗口每次只向右移动一位。给出由小写字母组成的字符串。,请你返回其中出现频率前。,判断字符串是否有效。
2023-08-12 20:49:37
470
原创 LeetCode ACM模式——字符串篇
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。中使用至少一个空格将字符串中的。是由非空格字符组成的字符串。
2023-08-11 02:47:36
503
原创 LeetCode ACM模式——哈希表篇(二)
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。请你找出并返回满足下述全部条件且。整数,并返回它们的数组下标。答案中不可以包含重复的三元组。编写一个算法来判断一个数。你可以按任意顺序返回答案。,请你计算有多少个元组。,判断是否存在三元组。,请你在该数组中找出。
2023-08-02 16:55:55
329
原创 LeetCode ACM模式——哈希表篇(一)
请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指由相同字母重排列形成的字符串(包括相同的字符串)是由重新排列源单词的所有字母得到的一个新单词。可以按任意顺序返回结果列表。中每个字符出现的次数都相同,则称。输出结果中的每个元素一定是。给你一个字符串数组,请你将。,编写一个函数来判断。
2023-08-01 18:21:50
614
原创 LeetCode ACM模式——数组篇
刷题顺序及思路均来源于代码随想录。给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。
2023-08-01 13:31:36
762
原创 java错题记录(二)
类方法是静态方法,被static修饰;而对象方法是通过new创建实例调用的方法。类方法是属于整个类的;而实例方法是属于某个类的对象的。因为 类方法是属于整个类的,而不是属于某个对象的,因此类方法中不能有与类的对象相关的内容。即1)类方法体中不能引用对象变量2)类方法中不能调用对象方法3)类方法中不能使用super、this关键字4)类方法不能被覆盖而对象方法则没有这些限制,即1)对象方法中可以引用对象变量,也可以引用类变量2)对象方法中可以调用对象方法、也可以调用类方法。
2023-07-17 09:59:24
249
原创 云智研发笔试编程题(一):图像相似度
给出两幅相同大小的黑白图像 (用0-1矩阵) 表示求它们的相似度。若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。
2023-06-09 19:05:41
220
原创 java错题记录(一)
静态域包括静态属性、静态代码块和静态方法,其中需要初始化的是静态变量和静态代码块,他们的执行顺序有他们声明时的顺序决定的(从上到下依次执行)int a='2'中的数字2被单引号引起来,表示的是字符2,而字符2所对应的ASCII码是50,因此这种情况下,a的值是50。int a = 2中的数字2表示了数字本身,这种情况下,a的值是2。C 字符型类型默认是0,取值范围是-2^15 —2^15-1。A 字节型的类型默认值是0,取值范围是-2^7—2^7-1。A 静态块 构造块 构造块 构造块。
2023-06-05 20:51:00
617
空空如也
调用方法时,显示Mapper空指针异常
2023-03-30
eclipse中文输出乱码
2022-06-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人