博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跳跃游戏 12 · Jump Game 12
阅读量:5217 次
发布时间:2019-06-14

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

跳跃游戏 1

[抄题]:

[思维问题]:

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. 由于要用iteration, 不能return, 每次都要对can数组进行操作
  2.  循环函数中不用return false, 因为最终能不能是can数组决定的

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

[总结]:

[复杂度]:Time complexity: O() Space complexity: O()

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

 [代码风格] :

 

跳跃游戏 2

[抄题]:

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

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

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

[思维问题]:

以为要比大小:确实是要比大小

[一句话思路]:

用steps[i] = steps[j] + 1来记录步数

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. steps[j]是从0开始往i靠近的 用j + A[j] >= i 表示角标能赶上
  2. steps[i]中只要有一个能赶上就足以break

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

不理解原理

[总结]:

通过角标能不能赶上,最终完成对steps[i]的迭代

[复杂度]:Time complexity: O(n^2) Space complexity: O(n^2)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

DP greedy一般不好随意出题,Google出题比较多。

[其他解法]:

greedy

[Follow Up]:

[LC给出的题目变变变]:

757. Set Intersection Size At Least Two 至少有两个交集:greedy

 [代码风格] :

public class Solution {    public int jump(int[] A) {        // state        int[] steps = new int[A.length];        // initialize        steps[0] = 0;        for (int i = 1; i < A.length; i++) {            steps[i] = Integer.MAX_VALUE;        }        // function        for (int i = 1; i < A.length; i++) {            for (int j = 0; j < i; j++) {                if (steps[j] != Integer.MAX_VALUE && j + A[j] >= i) {                    steps[i] = Math.min(steps[i], steps[j] + 1);                }            }        }                // answer        return steps[A.length - 1];    }}
View Code

 

转载于:https://www.cnblogs.com/immiao0319/p/8432956.html

你可能感兴趣的文章
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
Java使用FileReader(file)、readLine()读取文件,以行为单位,一次读一行,一直读到null时结束,每读一行都显示行号。...
查看>>
Elipse安装Spring Tool Suite
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
滴滴快车历史奖励政策:含工作日和周末的高峰奖励、翻倍奖励【历史政策】...
查看>>
文件操作类2
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
phpcurl类
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
cocos2dx 3.3环境搭建
查看>>
Spring DI
查看>>
c++ map
查看>>
exit和return的区别
查看>>