设行号为i,每一行的按键数f(i)为从上一行正确的按钮已经按下开始,直到按下这一行的正确按钮,每一行的要按下正确的按钮,所需要的按键数f(i) = 1 + (a[i] - 1) * (i + 1),加起来就是结果。
我们要算第三行需要按键数时,首先第一个按钮只需要按一次,右边的按钮每个都需要第一行1次 + 第二行1次 + 1 = 3次,所以这一行所需要的按键数为 1 + (3 * 3)
代码如下
public long findMaxButtons (int[] buttons) {
// write code here
long times = 0;
for (int i = 0; i < buttons.length; i++) {
times += (buttons[i] - 1) * (long)(i + 1) + 1;
}
return times;
}