已经可以到达数组最后一个位置,因此返回true。
输入[3,1,1,1,0,3] 输出:false
分析:在位置(下标)0,可跳跃的最远距离为3,即可到达位置(下标)3;
在位置(下标)1,可跳跃的最远距离为1,即可到达位置(下标)2;
在位置(下标)2,可跳跃的最远距离为1,即可到达位置(下标)3;
在位置(下标)3,可跳跃的最远距离为1,即可到达位置(下标)4;
在位置(下标)4,可跳跃的最远距离为0,即可到达位置(下标)4;
位置(下标)4< 位置(下标)5,不能到达数组最后一个位置,因此返回false。
思路:贪心策略
1.从上面例子,我们知道数组的最后一个元素数值不起作用,只需判断数组前n-1个元素即可。
2.贪心策略:依次遍历数组,用int类型变量longestDistance记录数组每一个元素的最远可达位置,longestDistance=当前数组下标+当前数组下标数值,每次遍历用Math.max()方法保存当前最大值即可。
若longestDistance>=arr.length-1,即最远可达位置大于数组最后位置,返回true,否则返回false
1.时间复杂度为O(N):遍历数组for循环。
2.额外空间复杂度为O(1),无额外空间。
/*
-
问题:跳跃游戏
-
方法:贪心策略
*/
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
String[] strArray = str.split(“,”);
int[] arr = new int[strArray.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(strArray[i]);
完结
Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。
Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。
库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。
[外链图片转存中…(img-8LI2K9xv-1714160404138)]