650. 2 Keys Keyboard
Posted stAr_1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了650. 2 Keys Keyboard相关的知识,希望对你有一定的参考价值。
public int minSteps(int n) { /* 由于只能复制全部或者一个,所以: 如果一个数不是质数,那么最快的就是由最大的公因子复制而来 如果一个数是质数,那么所有方式都大于等于全部由1复制而来 网上看了看这个规律都是观察得出的,所以直接背过: 两个键的键盘问题(只能全部复制或者粘贴问题): 非质数就考虑最大公因子,质数就直接返回n(当然考察质数也是需要循环判断没有因子) */ if (n <= 1) return 0; int[] dp = new int[n+1]; dp[0] = 0; dp[1] = 0; for (int i =2;i < n+1;i++ ) { for (int j = i-1;j > 0;j--) { if (i % j == 0) { //i/j是(i/j-1)+1,(i/j-1)代表粘贴(i/j-1),后边加的1是复制 dp[i] = dp[j] + (i/j); break; } } } return dp[n]; }
以上是关于650. 2 Keys Keyboard的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题总结:650. 2 Keys Keyboard
leetcode 650. 2 Keys Keyboard 只有两个键的键盘(中等)