分治
C-Liueasymoney
这个作者很懒,什么都没留下…
展开
-
【LeetCode刷题笔记】215.数组中的第k个最大元素
题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例:输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 分治,利用快速排序的思想 根据快速排序的思想,确定一个数让其做分割点,左边的数字都比它小或相等,右边的数都比其大。每次分割结束后比较从分割点到最右端的距离,如果相等,就说明分割点右边有k - 1个数字比它更大,那么它就是第k大的数字,如果小于,说明右边比分割点大的数字不足k个,那么第k大的点应该在左.原创 2021-06-21 14:22:14 · 93 阅读 · 0 评论 -
【LeetCode刷题笔记】53.最大子序和
题目: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例:输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 动态规划 状态方程: dp[i]表示数组中到第i位时的最大子序和 转移方程: dp[i]的值取决于数组第i位选择加入之前的子序列,还是从它开始重新创建一个子序列,这要看第i位的大小和之前的子序列和加上第i位的大小哪个更大。 如果第i位加上了.原创 2021-06-15 18:19:36 · 60 阅读 · 0 评论 -
【LeetCode刷题笔记】23.合并k个升序链表
题目:给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例:输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1->3->4, 2->6 ] 将它们合并到一个有序链表中得到。 1->1->2->3->4->4->5->6 朴素的办法:设置一个result节点,依次把数组.原创 2021-06-09 12:50:41 · 160 阅读 · 0 评论