1,跳跃游戏2
肯定可以到达,返回最少的跳跃次数。尽量把最多的跳了。
移动下标达到了当前覆盖的最远距离下标的时候,步数要加一,因为不管怎么样都需要再多跳一次了。当移动下标达到了当前覆盖的最远距离的时候,如果当前就是这个最远的,那么就不用再跳了,如果不是要再加一。细节,重看。
2,K次取反后最大化的数组和
数组最大:把绝对值最大的负数变成正的,如果把所有负数都变成正数了,k还是没有用完,那么假设k是奇数,就需要转变最小的现在有的正整数,这样损失可以最小;如果k是偶数,那么就不用管了,无所谓了。记得排序。
3,加油站
从头开始遍历,算出二者差累计的最小值。如果这个值小于0,那么久说明从0开始不行的,那么从后面开始遍历,当累加到可以把这个亏空补上的时候就是起点;如果值不是小于0的,那么直接返回0就可以。
4,分发糖果
一边一边考虑,确定一边后,再确定另外一边,先从左到右,从最前面遍历;从右到左的时候,从最后面遍历。有几个细节,首先要给第一个位置1个糖果,其次,当从左向右遍历没有出现满足条件的结果时,count也要赋值1,另外,倒叙遍历的时候,需要取二者最大值,以满足条件。
5,根据身高重建队列
用到了二维数组的自定义排序:
先按照身高对其进行排序,然后使用队列。循环遍历排序好的people,对每一个p都插入到p[1]的位置中,可以保证结果正确,最后toArray。