logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

leetcode1094. 拼车(差分数组-java)

给定整数 capacity 和一个数组 trips ,trip[i] = [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客,接他们和放他们的位置分别是 fromi 和 toi。比如说,我给你输入一个数组 nums,然后又要求给区间 nums[2…输入:trips = [[2,1,5],[3,3,7]], capacity = 4。输

文章图片
#java#开发语言#leetcode +3
leetcode40. 组合总和 II (java-回溯算法)

重复的2 我们就不进行重复选择了,进行剪枝,代码里就是,我们先对数组排序,让相等的两个数相邻,然后递归时,判断已经选择过,就跳过。输入: candidates = [10,1,2,7,6,1,5], target = 8,输入: candidates = [2,5,2,1,2], target = 5,我们是要子集中的一部分符合,和为target 的子集,因此我们只要加入判断就行了。但是这里有个问

文章图片
#算法#java#leetcode +2
leetcode522. 最长特殊序列 II(java)

例如,“abc” 是 “aebdc” 的子序列,因为您可以删除"aebdc"中的下划线字符来得到 “abc”。给出一个字符串数组,在里面找出字符串满足当前字符串不是字符串数组中其他字符串的子序列,返回满足条件的字符串中 最长的字符串的长度。在所有满足要求的 str[i]中,我们选出最长的那个,返回其长度作为答案。看懂题目应该就不难了,其实就是比较一个字符串,是不是其他字符串的字串,找出所有满足条件

文章图片
#java#python#开发语言 +3
遍历二叉树的神级方法--Morris遍历(java)

Morris遍历是一种用于二叉树遍历的算法,它以一种递归和非递归的方式进行。这个算法的名字来自于它的发明者J. H. Morris。Morris遍历的主要思想是利用树的结构来遍历,而不是使用栈或递归。它有两种不同的实现方式:递归方式:在递归实现中,我们从树的根节点开始遍历。如果当前节点为空,我们直接返回。如果当前节点有左子树,我们通过递归调用Morris遍历来遍历左子树。

文章图片
#算法#leetcode#java +3
leetcode 796. 旋转字符串(KMP算法-java)

KMP算法(Knuth-Morris-Pratt算法)是一种用于查找字符串中是否存在某个模式的算法,时间复杂度为O(m+n),其中m是模式串的长度,n是文本串的长度。该算法是由Knuth、Morris和Pratt三人于1977年共同提出的,它利用了模式串的前缀信息来避免无效的匹配,从而提高匹配效率。KMP算法的核心思想是,当模式串中的某个字符与文本串中的某个字符不匹配时,能够利用模式串的前缀信息快

文章图片
#算法#leetcode#java +2
leetcode 74. 搜索二维矩阵(java)

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3。当前节点「小于」目标值,搜索当前节点的「右子树」,也就是当前矩阵位置的「下方格子」,即 x++当前节点「大于」目标值,搜索当前节点的「左子树」

文章图片
#leetcode#矩阵#java +3
leetcode 41. 缺失的第一个正数(java)

按照桶排序思路进行预处理:保证 1 出现在 nums[0] 的位置上,2 出现在 nums[1] 的位置上,…例如样例预处理后的数组 [1,-1,3,4] 中第一个 nums[i]!遍历 nums,找到第一个不在应在位置上的 [1, n] 的数。例如样例中 [3,4,-1,1] 将会被预处理成 [1,-1,3,4]。令数组长度为 n,那么答案必然在 [1, n + 1] 范围内。输入:nums =

文章图片
#leetcode#java#算法 +4
leetcode84. 柱状图中最大的矩形(单调栈-java)

这样以来,我们得到它们左侧的柱子编号分别为[−1,0,−1,−1,3,4,5,3]。用相同的方法,我们从右向左进行遍历,也可以得到它们右侧的柱子编号分别为 [2,2,3,8,7,7,7,8],这里我们将位置 8 看作「哨兵」。去遍历这个数组,每到一个数字时,我们就找出能以当前数字为最小值的子数组的范围,知道范围后,我们就可以求出其最大矩形的大小.遍历所有位置后,就可以得出最大值了.我们用一个具体的

文章图片
#java#python#算法 +3
LeetCode:相交链表(java)

输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3。输入:intersectVal = 2, listA = [1,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B

文章图片
#java#链表#leetcode
leetcode二叉树中的最大路径和(java)

用递归的方式去处理这个问题,我们递归左树和右树时,每次递归,我们去比较一条链路是上的最大值,然后保存下这个最大值,然后在递归的代码里,我们每次要比较左树和右树哪个大,然后哪个去加上头节点的值,因为要形成一个链路,左树和右树我们只能选择一个。解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42。解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 +

文章图片
#java#leetcode#算法
    共 11 条
  • 1
  • 2
  • 请选择