Velliy

Results 13 comments of Velliy

为啥买了微信豆,解锁后只能在手机上呢?希望改进一下

pre为啥在for循环里面初始化呢?那这样不就和i-1没关系了么?

for (int j = 2; j < i; j++) 个人感觉这里j可以等于i吧,就相当于第i次操作可以复制,相应的dp[i] = Math.max(dp[i], dp[j - 2] * (i - j + 2)); 不然的话,第j次操作是复制,为啥不能等于i?当前第i次操作就只能是按A了,虽然i+1的时候j还会遍历到当前的i,但是最后i=N的时候j最大N-1,那最后一次操作不就只能按A了么?这里也没讲明白啊

我自己dubug悟了,“所以我们用一个变量 j 作为若干 C-V 的起点。那么 j 之前的 2 个操作就应该是 C-A C-C 了”这里表述是有问题的,j那次操作不是CV而是CC,j+1才是CV的起点,j之前也就是j-1那一次的操作是CA,j-2是什么操作不知道,反正dp[j-2]是j-2次操作下的最优值,因为j-1是CA,j是CC,所以i-j就是j之后包括i在内的粘贴次数,是对dp[j-2]的粘贴,再加上dp[j-2]本身,所以dp[i]可以为dp[j - 2] * (i - j + 1)。另外最后一个图画的也不准确,根据定义:dp[i] 表示 i 次操作后最多能显示多少个 A,那么图中下标为4的地方就是第四次操作也就是CA,所以直接把CA画在下标4那里就可以。以上是个人理解,如有错误,欢迎指出。

哦另外,j是CC,i是CV,所以“for (int j = 2; j < i; j++)” 这里j

感觉两个for循环 可以合并啊,没必要再单独照一次,nums[index] < 0 说明i就是不存在的元素

1、根据定义正着解释,两个字符串都可以操作,删除和替换 2、根据作者的倒着来但是 函数的话就倒着解释,dp数组的话就正着解释,只操作s1,增加、插入和删除

1、补充一下“当遇到左括号时,若对右括号的需求量为奇数,需要插入 1 个右括号”,这个地方如果不做判断,那么 "()()))“ 和 ")()))"这两种情况(能造成 need为奇数的也就这两种情况,一个是need==-1造成的,一个是本来就缺一个右括号)结果都为0,也就是说不加奇偶判断的话,是不能保证按"())"顺序闭合的,一个左括号出现之前,必须要保证之前的左括号都已经匹配完或者一个右括号也没匹配,所以这句话应该"当遇到左括号时,若对右括号的需求量为奇数,需要插入 1 个右括号,来匹配之前缺一个右括号的左括号" 2、此算法最后一个案例超时