当前位置: 首页 > news >正文

45.跳跃游戏

:双层for。复杂度n*n   n

class Solution {public int jump(int[] nums) {// 找到所有的条约方法,返回其中的最小次数// 从后向前,依次记录到最后的次数int n = nums.length;if(n == 1) return 0;// int[] temp = new int[n];// temp[n-1] = 0;for(int i = n - 2; i >= 0; i--){if(i + nums[i] >= n-1){temp[i] = 1;continue;}if(nums[i] == 0) {// 设置成n,意味着不可达temp[i] = n;continue;}int min = Integer.MAX_VALUE;for(int j = i+1; j <= Math.min(i+nums[i], n-2); j++){min = Math.min(min, temp[j]);}temp[i] = min+1;}return temp[0];}
}

:简化。可以直接在原数组上设置最小长。空间复杂度  1

public int jump(int[] nums){int n = nums.length;if(n == 1) return 0;for(int i = n - 1; i >= 0; i--){if(i == n-1) nums[i] = 0;if(i + nums[i] >= n-1){nums[i] = 1;continue;}if(nums[i] == 0){nums[i] = n;continue;}int min = Integer.MAX_VALUE;for(int j = i+1; j <= Math.min(i+nums[i], n-2); j++){min = Math.min(min, nums[j]);}nums[i] = min + 1;}return nums[0];
}

 :复杂度:n 1

public int jump(int[] nums){int range = 0;int maxRange = 0;int cnt = 0;// 注意i的条件,不要遍历最后一个元素for(int i = 0; i < nums.length - 1; i++){maxRange = Math.max(maxRange, i + nums[i]);if(i == range){cnt++;range = maxRange;}}return cnt;
}

 

http://www.lryc.cn/news/420997.html

相关文章:

  • Golang | Leetcode Golang题解之第328题奇偶链表
  • 【ARM】CMSIS 软件标准接口
  • Qt 小功能:加载等待动画——转圈圈
  • 【Linux进程篇】进程终章:POSIX信号量线程池线程安全的单例模式自旋锁读者写者问题
  • MathType7.5破解版下载安装激活图文详细教程(附激活秘钥)
  • 2-62 基于MATLAB gui 编制短波通信系统
  • windows C++-C++/WinRT 中创建组件和事件(下)
  • C++初学者指南-5.标准库(第二部分)--二叉堆操作
  • 在Ubuntu 16.04上安装Git的方法
  • redis内存淘汰策略-------Reservoir Sampling(水库采样)
  • C++《类和对象》(上)
  • LLM大语言模型算法特训
  • Docker相关笔记
  • 前端技术day01-HTML入门
  • Multisim 用LM358 运放模拟线性稳压器 - 运放输出饱和 - 前馈电容
  • 宁德大屏第二版总结
  • 冥想第一千二百四十七天(1247)
  • 基于光学动捕定位下的Unity-VR手柄交互
  • php json_decode 带反斜杠字符串json解析
  • 【NLP】文本张量表示方法【word2vec、词嵌入】
  • 疯狂Java讲义_08_泛型
  • HCIA、OSPF笔记
  • Python删除lru_cache缓存
  • Android面试必问题:大白文讲透Android View工作原理
  • WinDbg配置远程调试
  • spl注入实战thinkphp
  • 整理深度学习时最常用的Linux命令(自用)
  • LVS——>linux 虚拟服务器知识汇总
  • AI赋能周界安防:智能视频分析技术构建无懈可击的安全防线
  • FastAPI+Vue3工程项目管理系统项目实战私教课 上课笔记20240808 课程和学习计划制定