[关闭]
@rg070836rg 2015-11-27T00:23:53.000000Z 字数 451 阅读 1490

Jump Game II

leetcode 贪心


https://leetcode.com/problems/jump-game-ii/

  1. class Solution {
  2. public:
  3. int jump(vector<int>& nums) {
  4. int n=nums.size();
  5. int step=0;//记录步数
  6. int left=0;
  7. int right=0;//记录左右可达范围
  8. if(n==1) return 0;
  9. while(left<=right)
  10. {
  11. step++;
  12. int old_right=right;
  13. //在左右边界中找下一个最大边界
  14. for(int i=left;i<=old_right;i++)
  15. {
  16. int new_right=i+nums[i];//记录当前可到达最大边界
  17. if(new_right>=n-1)
  18. {
  19. //k可到达,返回步数
  20. return step;
  21. }
  22. if(new_right>right)
  23. {
  24. //更新当前可到达最大右边界值
  25. right=new_right;
  26. }
  27. }
  28. //左边界更新到原来的右边界右边
  29. left=old_right+1;
  30. }
  31. }
  32. };
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注