master
pqh 2023-10-05 11:49:37 +08:00
parent 0c8bc8d1c6
commit 56f7c8673a
1 changed files with 0 additions and 44 deletions

View File

@ -1,44 +0,0 @@
package com.bawei;
import java.util.Arrays;
/**
* @author : lpg
* @ClassName : demo5
* @Description :
* @createTime : 2023/10/5 11:35
*/
public class demo5 {
public static void main(String[] args) {
//定义需要定义的数组数据
int[] arr={2,3,1,2,1,2,3,2,5};
//调用返回最小步数的方法
int i=returnMinNum(arr);
//输出最终实现的步数
System.out.println(i);
}
private static int returnMinNum(int[] arr) {
//获取数组的长度
int length = arr.length;
//根据长度定义新集合
int[] ints = new int[length];
//在这段代码中Arrays.fill(dp, Integer.MAX_VALUE)将数组ints中的每个元素都赋为Integer.MAX_VALUE即整型变量能表示的最大值。
Arrays.fill(ints,Integer.MAX_VALUE);
//从零开始进行
ints[0]=0;
//for (int i = 1; i < length; i++) {:这是外层循环,用于遍历数组中的每个元素。
for (int i = 1; i < length; i++) {
//for (int j = 0; j < i; j++) {:这是内层循环,用于遍历当前元素之前的所有元素。
for (int j = 0; j < i; j++) {
//if(j+arr[j]>=i){这是一个条件判断语句用于检查是否满足特定条件。具体来说它判断当前位置j加上对应的值arr[j]是否大于等于i。
if(j+arr[j]>=i){
//ints[i]=Math.min(ints[i],ints[j]+1);这是一个赋值语句用于更新ints数组中索引为i的元素的值。具体来说它将ints[i]的值与ints[j]+1的值进行比较并将较小的值赋给ints[i]。
ints[i]=Math.min(ints[i],ints[j]+1);
}
}
}
//返回最小步数
return ints[length-1];
}
}