- 博客(53)
- 收藏
- 关注
原创 左叶子之和_多种方法_java
5. 特别的若当前结点的左子树为一个叶子结点,则当前结点的左节点之和就等于左结点的值 + 右子树的和。 3、由于当仅存在根节点时输出的总值为0,所以将根结点视为上一级节点的右节点。输入: root = [3,9,20,null,null,15,7] 1.2 若节点为叶子结点,将节点值加入总值。 1.1 若节点为空或为叶子结点,直接返回。3. 当前结点的左节点之和就等于两颗子树的和的相加。1. 计算节点的左子树的左节点之和。2. 计算节点的右子树的左节点之和。
2024-04-21 22:50:56
401
原创 完全二叉树的节点个数_后序遍历_java
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。1.3 若不是,则递归处理该结点下的子节点,最后返回 (1 + 左子树结点数 + 右子树结点数)1.2 若是,则直接返回该满二叉树的结点数,且不再递归处理该结点下的子节点。给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。2. 一颗满二叉树,若已知其深度为h,则其结点总数为2^h-1。输入:root = [1,2,3,4,5,6]
2024-04-03 19:17:55
313
原创 二叉树的最小深度_多种方法求解_java
输入:root = [2,null,3,null,4,null,5,null,6]输入:root = [3,9,20,null,null,15,7]最小深度是从根节点到最近叶子节点的最短路径上的节点数量。先计算出左右子树的最小深度再得出中间结点的最小深度。依次求解中间结点,左节点,右结点的当前深度。树中节点数的范围在 [0, 105] 内。说明:叶子节点是指没有子节点的节点。因为整颗树都被遍历了所以为O(n)因为整颗树都被遍历了所以为O(n)采用前序遍历:中左右。采用后序遍历:左右中。
2024-04-03 17:18:30
356
原创 对称二叉树_递归_java
若对子树中的同一层,左子树的左节点等于右子树的右节点,左子树的右节点等于右子树的左节点。输入:root = [1,2,2,null,3,null,3]给你一个二叉树的根节点 root , 检查它是否轴对称。输入:root = [1,2,2,3,4,4,3]判断二叉树是否对称就是判断其左右子树是否对称。树中节点数目在范围 [1, 1000] 内。因为整颗树都被遍历了所以为O(n)
2024-04-02 11:04:21
340
原创 前k个高频元素_优先队列_java
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。PriorityQueue类的add方法的时间复杂度为O(logn), 调用了n次所以时间复杂度为O(nlogn)PriorityQueue类的add方法的时间复杂度为O(logn), 调用了n次所以时间复杂度为O(nlogn)输入: nums = [1,1,1,2,2,3], k = 2。k 的取值范围是 [1, 数组中不相同的元素的个数]输入: nums = [1], k = 1。用map记录数组中元素出现的频率。
2024-04-02 09:35:06
527
原创 滑动窗口最大值_单调队列_java
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。设r为队列中的元素,则我们需要维护队列中的元素按照r值递增排列,按照nums[r]值递减排列。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。该题实现线性复杂度的关键在于维护一个单调队列。输入:nums = [1], k = 1。输出:[3,3,5,5,6,7]单调队列中存储着数组元素的下标。返回 滑动窗口中的最大值。空间复杂度:O(n)
2024-04-02 00:12:58
386
原创 逆波兰表达式_用栈求解_java
tokens[i] 是一个算符(“+”、“-”、“*” 或 “/”),或是在范围 [-200, 200] 内的一个整数示例。输入:tokens = [“10”,“6”,“9”,“3”,“+”,“-11”,“解释:该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。输入:tokens = [“4”,“13”,“5”,“/”,“+”]输入:tokens = [“2”,“1”,“+”,“3”,“*”]
2024-04-01 22:50:20
400
原创 MySQL8.0_常用SQL语句 + 常用命令
注意:此处常用命令仅限于linux的命令行,如果使用其他工具对mysql进行操作可能会略有不同!视图:虚拟表,并不存储实际的数据,而是作为查询语句存储在数据字典中。一般对主键字段和经常查询字段建立索引。根据视图语句的定义来动态的生成数据。count(*) 求记录条数。
2024-03-29 21:44:29
395
原创 Git_常用命令+代码冲突解决方案
可对仓库进行多次回退,然后再一次性提交暂存区中的内容,从而实现将之前提交的多个版本合并成一个版本。创建本地仓库前先要进入自己想要作为本地仓库的文件夹下,再使用git命令将该文件夹变成本地仓库。或者使用如下命令,从而在当前路径下新建一个名为test的文件夹并将其作为本地仓库。在学习添加和提交文件前,我们需要先了解一下git的工作区域和文件状态。使用如下命令会显示每次提交的提交者,邮箱,提交日期,相关信息及版本号。将暂存区的文件提交到仓库,-m后跟的是本次提交的相关信息。如果想移除暂存区的文件可使用如下命令。
2024-03-28 17:36:42
1639
原创 Nginx_反向代理配置+负载均衡配置
在集群化部署时,由于一个软件应用或服务被部署到多台应用服务器上,所以需要判断将客户端请求分发给哪台服务器处理。而负载均衡的目的就是对客户端请求进行合理分发。
2024-03-28 15:15:02
464
1
原创 Nginx_简介 + Linux系统下详细安装教程指路
可参看该视频【尚硅谷Nginx教程(亿级流量nginx架构设计)】 https://www.bilibili.com/video/BV1yS4y1N76R/?p=2&share_source=copy_web&vd_source=4c2f33f3ba1a0dd45bfdf574befd0069 的p2-p7。从安装centos虚拟机到在虚拟机上安装nginx都有详细介绍。
2024-03-28 11:20:26
301
原创 Nginx_常用配置
本文旨在提供一个涵盖Nginx常用配置的模版配置文件。对文件中各个配置的作用都进行了简洁明了的说明。可帮助初学者快速上手进行Nginx的文件配置。
2024-03-27 22:23:14
356
原创 所有可能的路径_回溯法_java
当所有的可能路径都搜索且回溯完毕后path = [0], 最后拿到的res将形如[[0],[0], [0]]。输出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]输入:graph = [[4,3,1],[3,2,4],[3],[4],[]]th = [0], 最后拿到的res将形如[[0],[0], [0]]。输入:graph = [[1,2],[3],[3],[]]输出:[[0,1,3],[0,2,3]]时间复杂度:O(n * 2^n)空间复杂度:O(n)
2024-03-23 12:19:35
458
原创 学成在线_视频处理-查询待处理任务_无法正常将数据插入待处理表
在使用前端页面上传.avi格式的文件时发现该文件的信息无法插入待处理表。控制台错误提示为Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘fail_count’ in ‘field list’。
2024-03-14 21:33:15
515
原创 Parameter 0 of method commitAudit in com.xuecheng.content.service.CoursePublishServiceImpl required
在启动微服务时报错Parameter 0 of method commitAudit in com.xuecheng.content.service.CoursePublishServiceImpl required a bean of type ‘java.lang.Long’ that could not be found.
2024-03-14 15:07:12
472
原创 每日温度_单调栈_java
3.1 若栈内存在元素所指向的元素值小于temperatures[i],就令这些栈内元素出栈,同时记录这些元素 对应的 answer值;输入: temperatures = [73,74,75,71,69,72,76,73]创建一个空栈,该栈中的元素为temperatures数组中元素的下标;输入: temperatures = [30,40,50,60]输出: [1,1,4,2,1,1,0,0]输出: [1,1,1,0]输出: [1,1,0]时间复杂度:O(n)空间复杂度:O(n)
2024-03-13 22:25:36
544
原创 学成在线_课程预览-视频播放测试_视频加载出错
在进行课程预览界面的视频播放测试时界面提示视频加载出错。如图所示JAVA特性讲解的第一小节视频加载出错。查看课程计划会发现该小节已经进行了视频关联。
2024-03-12 23:15:08
535
原创 使用最小花费爬楼梯_动态规划法_java
由于爬台阶时可选择向上爬两个或者一个,所以对于爬到第i级台阶可以先爬到第(i-1)级台阶再向上爬一级台阶或者先爬到第(i-2)级台阶再向上爬两级台阶。又因为题目所求为最小花费,若以dp[i]代表爬到第i级阶梯所需最小花费,则dp[i] = min { dp[i - 1] + cost[i - 1] , dp[i - 2] + cost[i - 2] }。输入:cost = [1,100,1,1,1,100,1,1,100,1]解释:你将从下标为 1 的台阶开始。解释:你将从下标为 0 的台阶开始。
2024-03-11 20:51:47
477
原创 最大子数组和_贪心法与动态规划法_java
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。若当前的连续子序列和大于0,则保留,从而使下一步取的连续子序列为当前的连续子序列 + 下一步处理的元素。该题使用贪心法每步需要进行的选择是:是否保留当前的连续子序列供下一步处理的元素进行连接?输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]空间复杂度:O(1)空间复杂度:O(n)
2024-03-08 18:25:51
524
原创 组合_回溯法_java
第一眼看过去我们就能想到使用蛮力法,采用n重for循环。但细想后会发现n是一个变量我们无法真的将所有的for循环写出来。所以本题的正确解法是采用递归的回溯法。同时根据题目的约束条件进行优化剪枝操作。给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。输入:n = 4, k = 2。输入:n = 1, k = 1。
2024-03-06 16:54:30
462
原创 二叉树的层序遍历_队列_java
给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。此后从队列中取出第i层二叉树的结点同时将i + 1层的二叉树的结点放入队列中。输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]树中节点数目在范围 [0, 2000] 内。将根结点入栈作为二叉树第1层结点;输入:root = [1]输入:root = []
2024-03-03 12:36:05
490
原创 有效括号_栈_java
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。遍历字符串,若为左括号则入栈, 若为右括号则从栈中取左括号与之匹配。每个右括号都有一个对应的相同类型的左括号。s 仅由括号 ‘()[]{}’ 组成。左括号必须用相同类型的右括号闭合。输入:s = “()[]{}”左括号必须以正确的顺序闭合。输入:s = “()”输入:s = “(]”
2024-03-03 11:31:13
436
原创 学成在线_上传视频测试_上传视频后数据库中无数据且分块未能删除
测试视频上传时发现数据库中无对应记录且Minio中的分块文件也没删除。调试后发现是因为合并后文件的md5值与本地的文件的md5值不同,导致直接返回没有执行数据库插入和分块文件的删除。
2024-03-01 17:18:34
465
原创 用栈实现队列_java
你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。请你仅使用两个栈实现先入先出队列。用两个栈一个输入栈一个输出栈来模拟队列,将元素加入队列时使用输入栈,将元素取出队列时使用输出栈。假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)int pop() 从队列的开头移除并返回元素。
2024-03-01 09:28:49
438
原创 四数之和_双指针_java
四数之和的双指针解法是在三数之和的双指针解法的基础上再加一重循环。有对三数之和的双指针解法不清楚的小伙伴可参考本人的。请你找出并返回满足下述全部条件且。
2024-02-28 09:49:30
419
原创 学成在线_课程计划查询_前端页面无法跳转
在进行课程计划查询的接口开发时通过了http-client测试但点开课程修改界面后点击保存并进行下一步时无法跳转到修改课程计划查询的页面。
2024-02-26 21:23:17
651
原创 三数之和_双指针_java
考虑数组[-2, 0, 0, 2, 2],当i = 0, left = 1, right = 4时取得符合条件的三元组【-2,0,2】。若对a的去重判断为nums[i] == nums[i + 1],那么由于满足条件的a元素不等于nums[i + 1]则求得的三元组中b元素一定不等于a元素。为什么对a的去重判断应为nums[i] == nums[i - 1]而不是nums[i] == nums[i + 1]?输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]
2024-02-26 11:05:29
423
1
原创 赎金信_哈希法_java
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。输入:ransomNote = “aa”, magazine = “aab”输入:ransomNote = “aa”, magazine = “ab”magazine 中的每个字符只能在 ransomNote 中使用一次。输入:ransomNote = “a”, magazine = “b”nsomNote 能不能由 magazine 里面的字符构成。
2024-02-22 09:54:55
453
1
原创 四数之和II_HashMap_java
输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]
2024-02-20 09:59:05
429
原创 两数之和_hashmap_java
遍历数组nums对每个nums[i]查找数组中是否存在nums[j] = target - nums[i]。若存在则返回[i, j]。为降低本题的时间复杂度可用map来判断数组中是否存在nums[j] = target - nums[i]。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。
2024-02-19 09:39:22
495
1
原创 学成在线_前后端联调定义cors过滤器_报错500
在配置了cors过滤器刷新页面后虽然有页面显示但报错500且无法显示课程内容错误如下图所示。
2024-02-18 16:33:45
437
1
原创 两个数组的交集II_多种方法_java
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]设nums1长度为n, nums2长度为m。设nums1长度为n, nums2长度为m。
2024-02-18 10:25:52
466
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人