长度最长的子数组 2024-05-27 算法, leetcode, 职场和发展 97人 已看 我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。,并返回其长度**。**如果不存在符合条件的子数组,返回。依旧是双指针,此次我们也可以称为滑动窗口。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。//滑动,左指针向前。
算法(十一)贪婪算法 2024-05-31 算法 12人 已看 贪婪算法(Greedy)是一种在每一步都采取当前状态下最好的或者最优的选择,从而希望导致结果也是全局最好或者最优的算法。贪婪算法是当下局部的最优判断,不能回退。贪婪算法的高效性,以及所求得的答案比较接近最优结果,因此贪心算法可以作为辅助算法或者解决一些要求结果不那么精确的问题。
算法(十)归并排序 2024-05-31 算法, java, 排序算法, 数据结构, 开发语言 94人 已看 归并排序(merge sort)是一个采用了分治法的典型应用,首先将数据一半一半的向下拆分,直到拆分到最小元素为止;然后从拆分的最小元素开始,按照原路径进行合并,合并的时候进行排序;直到全部元素合并完成,排序完成。归并排序使用了递归思想(一级一级向下拆分、然后按照原路径一级一级向上合并)
python 贪心算法(Greedy Algo) 2024-05-30 算法, python, 贪心算法, 开发语言 103人 已看 贪心选择是总是选择剩余活动中完成时间最短的下一个活动,并且开始时间大于或等于先前选择的活动的结束时间。我们可以根据活动的完成时间对活动进行排序,以便我们始终将下一个活动视为完成时间最短的活动。在实现中,假设活动已经按照完成时间排序,否则时间复杂度将上升到 O(N*log(N)),辅助空间将上升到 O(N),因为我们必须创建一个二维数组来将开始时间和结束时间存储在一起。B 中的活动是独立的,并且 k 的完成时间是所有活动中最小的。每一步,我们都可以做出当前看来最好的选择,从而得到整个问题的最优解。
【二叉树】Leetcode 117. 填充每个节点的下一个右侧节点指针 II【中等】 2024-05-31 算法, leetcode, 职场和发展 122人 已看 给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化输出按层序遍历顺序(由 next 指针连接),‘#’ 表示每层的末尾。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。
决策树|随机森林 GBDT XGBoost|集成学习 2024-05-27 算法, 集成学习, 机器学习, 随机森林, 决策树 258人 已看 本文首先介绍了决策树的数学背景,同时介绍集成学习相关的bagging boosting 模型理论,最后介绍了随机森林模型和两种最常用的随机森林模型算法GBDT 和XGBoost
P3881 2024-05-31 算法, java, leetcode, 数据结构, 开发语言 97人 已看 二分:枚举两个牛之间的最小距离,左端点是1,右端点是篱笆总长度。如果两头牛之间距离是Mid不合法,则返回0(false);如果两头牛之间距离是Mid合法,则返回1(true)。
Python实现SMA黏菌优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战 2024-05-30 算法 11人 已看 Python实现SMA黏菌优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战
Java—选择排序 2024-05-22 算法, java, 排序算法, 数据结构, 开发语言 83人 已看 它的基本思想是从待排序的数据中选择最小(或最大)的元素,放到已排序序列的末尾(或开头),然后再从剩余未排序的元素中选择最小(或最大)的元素,放到已排序序列的末尾(或开头),以此类推,直到全部元素排序完成。选择排序的时间复杂度为O(n^2),其中n为待排序数组的长度。尽管选择排序的时间复杂度较高,但它简单易懂,适用于小规模数据的排序。对于大规模数据,更高效的排序算法如快速排序和归并排序更为常用。以上代码通过遍历整个数组,找到剩余未排序部分的最小值,并将其与当前位置的元素交换,重复这个过程直到数组排序完成。
数据结构——不相交集(并查集) 2024-05-27 算法, 数据结构 61人 已看 一、基本概念一、基本概念关系:定义在集合S上的关系指对于a,b∈S,若aRb为真,则a与b相关等价关系:满足以下三个特性的关系R称为等价关系(1)对称性,aRb为真则bRa为真;(2)反身性,aRa为真;(3)传递性,aRb为真,bRc为真,则aRc为真等价类:等价类E是集合S的子集,其中E内的任意两个元素构成等价关系不相交集:将集合S分为若干个等价类,等价类之间不包含相同的元素,对于x∈S,x只属于S中一个等价类。由于子集之间不包含相同的元素,将这样的集合称为不相交集。
代码随想录算法训练营Day8 2024-05-29 算法, leetcode, 职场和发展 119人 已看 返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]输出:[“o”,“l”,“l”,“e”,“h”]
数据结构-堆排序问题 2024-05-27 算法, 数据结构 57人 已看 在建堆之后,函数进入一个循环,每次循环中,它将堆顶元素(当前堆中的最小元素)与当前堆的最后一个元素交换。然后,堆的大小减少 1,并且对剩余的堆进行向下调整以保持最小堆性质。如果相反的话,会导致根节点变化,从而导致逻辑混乱,数组里面的数值少的时候是不明显的,但是多的时候就不行了。函数来构建一个小顶堆(最小堆)。:循环继续进行,直到堆的大小减小到 0。1,需要在数组里面进行排序,我们可以采取在数组建堆。函数实现了一个堆排序算法,它接收一个整数数组。2,然后交换收尾元素,每次调整的数值减少1。