力扣 407 接雨水 II
力扣 407 接雨水 II
|
力扣 |
0 评论
题目描述给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。示例 1:输入: heightMap = [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]]输出: 4解释: 下雨后,雨水将会被上图蓝色
Randomized-Select 算法详解
Randomized-Select 算法详解
|
Randomized-Select 算法详解前言在一个长为 n 的无序序列中,查找第 k 个大或小的元素,Randomized-Select 算法可以实现时间复杂度为 O(n) 的查找。在网上查了一些资料,都没有讲解为什么该算法时间复杂度是 O(n),于是看了《算法导论》,看了原版的推导和证明,这里
十大经典排序算法(C++实现)
十大经典排序算法(C++实现)
|
前言目前 Leetcode 刷题刷到排序算法部分,回顾一下十大经典排序算法。1. 冒泡排序特性说明时间复杂度O(n^2)有序时最好 O(n)空间复杂度O(1)稳定性稳定排序细节:如果有序,直接返回void bubble_sort(vector<int> &nums){ bo
环路检测算法 Floyd's Tortoise and Hare 保姆级详解
环路检测算法 Floyd's Tortoise and Hare 保姆级详解
|
算法 |
0 评论
迭代是计算机中最基本的一种执行模式,几乎任何程序都需要用到迭代(即循环)。环路检测就是应用在具有迭代结构的程序里,用于检测程序是否会在一个环路中死循环,或是用来检测图、链表或状态机等结构中是否含有环。
对贪心算法的理解和总结
对贪心算法的理解和总结
|
力扣 |
0 评论
前言本文通过结合例题的形式来讲解贪心算法,可能需要实际动手做过题之后再看才能很好地理解。我个人认为,光看总结不做题是很难理解到题的本质的,所以还是做完题再看总结比较好。也许这时候你自己也有了自己的理解和总结,阅读本文可以进行思想的交流和碰撞。题目列表如下:由易到难605. 种花问题455. 分发饼干
力扣题解:435. 无重叠区间(中等)
力扣题解:435. 无重叠区间(中等)
|
力扣 |
0 评论
力扣题解:435. 无重叠区间(中等)题目给定一个区间的集合 intervals ,其中 intervals[i] = [start_i, end_i] 。返回需要移除区间的最小数量,使剩余区间互不重叠 。示例 1:输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输
力扣题解:135. 长度最小的子数组(困难)
力扣题解:135. 长度最小的子数组(困难)
|
力扣 |
0 评论
题目n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。
24点算法:思考与记录
24点算法:思考与记录
|
算法 |
0 评论
前言突然回想起小时候玩扑克牌时常玩的游戏,24点。四张扑克牌,可以随意用加减乘除运算进行组合,最终能凑成24,是一个考验心算的小游戏。于是就想尝试用计算机实现,看看有多少种可能,不过24点是很容易穷举的,可能性并不多。最终程序跑出来,一共有28561种组合,其中22615种都可以凑出24点,成功率有
力扣题解:23.合并K个升序链表(困难)
力扣题解:23.合并K个升序链表(困难)
|
力扣 |
0 评论
力扣题解:23.合并K个升序链表(困难)前言这道题是合并两个有序链表的升级版,理论层面的难度并不算大,在编码过程中可能涉及到一些深一些的知识点,本题采用了优先队列,并自定义了比较器实现小顶堆。该题涉及:优先队列题目合并K个升序链表难度:困难给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合
C++STL常用数据结构及操作
C++STL常用数据结构及操作
|
0 评论
前言本文的整理针对平常做算法题比较常用的数据结构和操作,并不适用于平常工程或项目。大部分算法题涉及到的数据结构并不复杂,所以本文整理的数据结构都是比较基础的操作,适合忘记怎么操作的时候看一眼。vector-动态数组定义在头文件vector中初始化:vector<type> vec:无元素