LeetCode--045--跳跃游戏II(java)

摘要:
给定一个非负整数数组,你最初位于数组的第一个位置。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入:[2,3,1,1,4]输出:2解释:跳到最后一个位置的最小跳跃数是2从下标为0跳到下标为1的位置,跳1步,然后跳3步到达数组的最后一个位置。8maxNext=Math.max;9if{10res++;11curMax=maxNext;12}13}14returnres;15}16}广度优先BFS:在当前能走的最大长度范围内不断搜索能走的最大长度,一旦超过总长度,返回结果.TIME:OSPACE:O1classSolution{2publicintjump{3ifreturn0;4intcurMax=0;5intmaxNext=0;6intres=0;7inti=0;8while{9res++;10for{11maxNext=Math.max;12if{13returnres;14}15}16curMax=maxNext;17}18return0;19}20}2019-05-0320:26:42

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

示例:

输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2
    从下标为0跳到下标为1的位置,跳1步,然后跳3步到达数组的最后一个位置。

说明:

假设你总是可以到达数组的最后一个位置。

贪心:curMax当前能走的最大长度,maxNext最终能走的最大长度

TIME:O(N)

SPACE:O(1)

1 classSolution {
2     public int jump(int[] nums) {
3         if(nums.length < 2 || nums==null)return 0;
4         int curMax = 0;
5         int maxNext = 0;
6         int res = 0;
7         for(int i = 0;i < nums.length - 1;i++){//一定会走到最后,则res多加了一个1,所以让其走到倒数第二个数字停止。
8             maxNext = Math.max(maxNext,nums[i]+i);
9             if(i ==curMax){
10                 res++;
11                 curMax =maxNext;
12 }
13 }
14         returnres;
15 }
16 }

广度优先BFS:

在当前能走的最大长度范围内不断搜索能走的最大长度,一旦超过总长度,返回结果.

TIME:O(N)

SPACE:O(1)

1 classSolution {
2     public int jump(int[] nums) {
3         if(nums.length < 2 || nums==null)return 0;
4         int curMax = 0;
5         int maxNext = 0;
6         int res = 0;
7         int i = 0;
8         while(curMax - i + 1 > 0){
9             res++;
10             for(;i<=curMax;i++){
11                 maxNext=Math.max(maxNext,nums[i]+i);
12                 if(maxNext >= nums.length-1){
13                     returnres;
14 }
15 }
16             curMax =maxNext;
17 }
18         return 0;
19 }
20 }

2019-05-0320:26:42

免责声明:文章转载自《LeetCode--045--跳跃游戏II(java)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇UCOSIII任务挂起和恢复Unity3d与android通信下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

未知账户(S1521)无法删除的问题

只有在“安全”中将所有者设置为当前管理用户后,才能删除此项。单击安全,单击高级,然后单击安全中的所有者以更改为系统的当前用户。...

vSphere HA 原理与配置

应当基于可用性需求和群集的特性选择vSphereHA接入控制策略。...

基于智能网卡(Smart Nic)的Open vSwitch卸载方案简介

SmartNic技术的初衷是以比普通CPU低得多的成本支持各种虚拟化功能,如sriov、overlay/decap和卸载一些vSwitch处理逻辑。目前,业界还没有完美的SmartNic解决方案来解决传统的vSwitch性能瓶颈,每种解决方案的实施方式也各不相同。没有统一的解决方案。图1.不同SmartNic架构的比较。2.基于SmartNic的OVS卸载方...

Mysql 查询以某个字符开头的语句

为了查询以某个字符开头的数据,MySQL中经常使用它。常见的语句如下:以查询文章标题以单词“positive”开头的语句为例:使用通配符:1SELECT*FROM`article`,其中title类似于“positive%”;使用左函数:使用字符串截断函数:1SELECT*FROM`article`其中substring(title,1,1)='positi...

java.net.URISyntaxException的解决办法

直接采用Stringurl=“http:count=1”;HttpGethttpget=新的HttpGet(url);HttpResponseresponse=client.execute(httpget);例如,“|”&amp;因此,不能直接使用String而不是URI来访问。然后我们可以使用URL生成URI的方法来解决这个问题。代码如下:URLu...

kafka命令

启动kafka:./kafka-server-start.sh../config/server.properties&查看topic./kafka-topics.sh--zookeeper192.168.8.56:2181,192.168.8.70:2181,192.168.8.147:2181--describe--topicliuhangjun....