牛牛很喜欢在数字序列中跳跃,每次可以向后跳一步或跳到往后任意一个与该位置数字相同的位置,问最少几次跳到尾部
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String num = sc.next(); int[] dp = new int[n]; dp[0]=0; dp[1]=1; for (int i = 2; i < n; i++) { //i-1位置不论相不相同都加1 for (int j = 0; j < i-1; j++) { if (num.charAt(j)==num.charAt(i)){ dp[i]=Math.min(dp[j]+1,dp[i-1]+1); break; } dp[i] = dp[i-1]+1; } } System.out.println(dp[n-1]); } }
全部评论
(5) 回帖