题目分析
松鼠的起点在第一棵树的0位置,它的行动轨迹为到达顶端,吃坚果,到另一棵树的同位置,到达顶端,吃坚果。
思路分析
根据题目分析,我们需要有一个不断更新的起始位置,单次循环内的时间=到达顶端的距离+吃坚果+跳跃=顶端-起始+1+1
代码
import java.io.IOException;
import java.util.*;public class Main {public static void main(String[] args) throws IOException {Scanner sc = new Scanner(System.in);int n = sc.nextInt();//获得数量sc.nextLine();//吞回车int re=0;//初始化答案int[] arr=new int[n];//存每棵树的高度int sta=0;//初始化起始位置for (int i = 0; i < n; i++) {//遍历arr[i]=sc.nextInt();//赋值sc.nextLine();//吞回车re+=Math.abs(arr[i]-sta)+1;//计算本次行动的时间,此处没有加上跳跃时间sta=arr[i];//更新其实位置}System.out.println(re+n-1);//加上跳跃时间}
}
感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。