commit 0c8bc8d1c6e2ae50aef4c73c6bb684993ccbb935 Author: pqh <2897412868@qq.com> Date: Thu Oct 5 11:45:30 2023 +0800 直接完成 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..35410ca --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..63574ec --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/mavenServices.xml b/.idea/mavenServices.xml new file mode 100644 index 0000000..ace6d4b --- /dev/null +++ b/.idea/mavenServices.xml @@ -0,0 +1,9 @@ + + + + https://oss.sonatype.org/service/local/ + https://repo.jfrog.org/artifactory/api/ + https://repository.jboss.org/nexus/service/local/ + http://124.223.23.100:8081/repository/maven-public/ + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..82dbec8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..9c1d4bd --- /dev/null +++ b/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + + com.bawei + question5 + 1.0-SNAPSHOT + + + 8 + 8 + UTF-8 + + + diff --git a/src/main/java/com/bawei/Question.java b/src/main/java/com/bawei/Question.java new file mode 100644 index 0000000..331e9d9 --- /dev/null +++ b/src/main/java/com/bawei/Question.java @@ -0,0 +1,38 @@ +package com.bawei; + +import java.util.*; + + + +public class Question { + public static void main(String[] args) { + //定义数组 + Integer[] arr = {3, 1, 4, 1, 1, 4, 1, 2, 3, 4, 1}; + //返回最小部署的方法 + int minSteps = minJump(arr); + System.out.println("最小步数是: " + minSteps); + } + + private static int minJump(Integer[] arr) { + if (arr == null || arr.length == 0) { + return 0; + } + + int n = arr.length; + int[] dp = new int[n]; + Arrays.fill(dp, Integer.MAX_VALUE); + dp[0] = 0; + + for (int i = 1; i < n; i++) { + for (int j = 0; j < i; j++) { + if (j + arr[j] >= i) { + + dp[i] = Math.min(dp[i], dp[j] + 1); + } + + } + } + + return dp[n - 1]; + } +} diff --git a/src/main/java/com/bawei/demo5.java b/src/main/java/com/bawei/demo5.java new file mode 100644 index 0000000..685d157 --- /dev/null +++ b/src/main/java/com/bawei/demo5.java @@ -0,0 +1,44 @@ +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]; + } +}