贪心策略:两次相反方向遍历,且每次遍历只考虑一侧的大小关系
因为评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果,所以评分更高的孩子,是在评分低的孩子的基础上+1,即需要获得评分低的孩子的累加值,所以在遍历的时候就需要注意判断的方向,比如我写的时候,顺序遍历,因为是从左到右,所以判断大小时,就需要... ...
分类:
其他好文 时间:
2021-05-25 17:45:40
阅读次数:
0
1、深度优先算法 遍历规则:不断地沿着顶点的深度方向遍历。顶点的深度方向是指它的邻接点方向。 最后得出的结果为:ABDECFHG。 2、广度优先算法: 遍历规则: 1)先访问完当前顶点的所有邻接点。(应该看得出广度的意思) 2)先访问顶点的邻接点先于后访问顶点的邻接点被访问。 最后得出的结果为:AB ...
分类:
其他好文 时间:
2020-06-09 18:28:37
阅读次数:
57
题目链接:https://leetcode cn.com/problems/shun shi zhen da yin ju zhen lcof/ 模拟 顺时针定义四个方向:上右下左。 从左上角开始遍历,先往右走,走到不能走为止,然后更改到下个方向,再走到不能走为止,依次类推,遍历 n m 个格子后停 ...
分类:
其他好文 时间:
2020-04-19 14:48:20
阅读次数:
58
算法描述: 快速排序也使用分治思想,其过程为: 分解:将原数组划分为两个子数组,但要求左边数组的每个元素都小于右边数组的每个元素。 解决:通过递归调用快速排序,对子数组进行排序。 合并:因为子数组是原址排序,所以不需要合并操作。 快速排序划分数组的方法: 1. 单方向遍历 选择最后一个元素为基准元素 ...
分类:
编程语言 时间:
2020-04-11 15:50:08
阅读次数:
85
题目 首先看一下题目大意:有一个m*n的地图,上面的瓷砖只有红黑两色。一个人站在某处。一直这个人只能在黑色方块上向四周移动,问他最多可以经过多少个黑色方块。 n,m<=20... 十分明显的一道搜索题,dfs或者bfs都可以实现。 我用的是dfs dfs的关键在于向四个方向遍历这张图 如果目标位置在 ...
分类:
其他好文 时间:
2020-02-01 16:31:47
阅读次数:
66
恢复内容开始 比较有意思的,旋(xuan)转(zhuan)卡(qia)壳(ke),还有半平面交都在这里。 1.多边形与凸包 左边是一个多边形,右边是一个凸包: 一般用按某一方向遍历整个多边形/凸包的数组/vector表示。 2.求凸包面积 随便找一个顶点,然后向不相邻的点连边,将凸包分成$(n-2) ...
分类:
其他好文 时间:
2019-06-04 00:02:43
阅读次数:
140
一.单链表的学习 单链表:也叫单向链表,只能从一个方向遍历和进行操作。 单链表分为2种,带头结点的和不带头结点的,这里主要说明一下带头结点的单链表。 二.带头结点的单链表 三.单链表的结点结构体 结点的结构体名字可以随便定义看个人喜好 四.链表的初始化 单链表的写法各有个的写法,各有个的风格,这也是 ...
分类:
其他好文 时间:
2019-04-30 23:44:21
阅读次数:
180
要学习LinkedList,首先得了解链表结构。上篇介绍ArrayList的文章中介绍了底层是数组结构,查询快的问题,但是删除时,需要将删除位置后面的元素全部左移,因此效率比较低。 链表则是这种机制: 此图展示的是一个单向列表,单向链表只能向一个方向遍历。链表中存在一系列的节点(node),每个no ...
分类:
其他好文 时间:
2019-04-16 00:54:51
阅读次数:
146
题目核心是矩阵遍历。以前做过类似的题,不过是正方形的情况。我都是由外向内,层一个for循环,四个方向一个for循环,坐标计算相对复杂。 换一种思路,记矩阵左上角坐标(i1,j1),右下角(i2,j2)。一个大的while循环,按照四个方向遍历,缩小矩阵。其实思路和之前一样,只不过规避掉了坐标繁琐的计 ...
分类:
其他好文 时间:
2018-06-03 00:59:49
阅读次数:
135