博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
45. Jump Game II
阅读量:6438 次
发布时间:2019-06-23

本文共 2326 字,大约阅读时间需要 7 分钟。

时间复杂度过高,o(n2)超时了:

class Solution {public:    int jump(vector
& nums) { int length = nums.size(); if(length <= 0) return 0; vector
result(length); result[0] = 0; bool flag[length]; flag[0] = true; for(int i = 1;i < length;i++) flag[i] = false; for(int i = 1;i < length;i++){ int min_num = 0x7fffffff; for(int j = i-1;j >= 0;j--){ if(flag[j] == false) continue; if(flag[j] == true && nums[j] >= i-j){ if(result[j]+1 < min_num){ min_num = result[j] + 1; flag[i] = true; } } } result[i] = min_num; } return result[length-1]; }};

 把上面代码简化,依旧是超时

class Solution {public:    int jump(vector
& nums) { int length = nums.size(); if(length <= 0) return 0; vector
result(length); result[0] = 0; for(int i = 1;i < length;i++) result[i] = -1; for(int i = 1;i < length;i++){ int min_num = 0x7FFFFFFF; for(int j = i-1;j >= 0;j--){ if(result[j] != -1 && nums[j] >= i-j){ result[i] = result[j] + 1; if(result[i] < min_num) min_num = result[i]; } } if(min_num != 0x7FFFFFFF) result[i] = min_num; else result[i] = -1; } return result[length-1]; }};

 用贪心算法做,时间复杂度只有0(n)

class Solution {public:    int jump(vector
& nums) { int n = nums.size(); if(n <= 0) return 0; int lastReach = 0; int reach = 0; int step = 0; for(int i = 0; i < n && i <= reach; i++) { if(i > lastReach) { step++; lastReach = reach; } reach = max(nums[i]+i, reach); } if(reach < n-1) return 0; else return step; }};

 推导过程:

两个讲解博客:

http://blog.csdn.net/cinderella_niu/article/details/42804559

http://www.cnblogs.com/boring09/p/4231771.html

你可能感兴趣的文章
用python写网络爬虫 -从零开始 3 编写ID遍历爬虫
查看>>
[cpyhon源代码]dict对象原理学习
查看>>
Testlink使用介绍
查看>>
Robotframework集成jenkins执行用例
查看>>
【SAP BI】BW如何连接SQLSERVER数据库
查看>>
$().each()和$.each()
查看>>
linux下root密码修改方法
查看>>
添加操作。。。
查看>>
Bootstrap框架
查看>>
MSHTML
查看>>
Android学习记录:SQLite数据库、res中raw的文件调用
查看>>
The 'microsoft.jet.oledb.4.0' provider is not registered on the local machin
查看>>
验证视图状态MAC失败的解决办法
查看>>
拦截器,过滤器,监听器原理
查看>>
P1312 Mayan游戏 [模拟][搜索]
查看>>
洛谷P4319 变化的道路
查看>>
LOJ#2353 货币兑换
查看>>
使用装饰器时带括号与不带括号的区别
查看>>
Linux终端乱码的解决办法
查看>>
解决问题Can’t connect to local MySQL server through socket
查看>>