【 NO.1 找出两数组的不同】
解题思路
可以使用 sort + binary search 求差集。
代码展示
【 NO.2 美化数组的最少删除数】
解题思路
从左到右遍历即可。
代码展示
【 NO.3 找到指定长度的回文数】
解题思路
举个例子:长度为 6 的第 k 大的回文数的前半边其实就是 100 + k - 1,由前半边复制出后半边即可。
奇数长度的回文数在复制出后半边前去掉末尾数即可。
代码展示
【 NO.4 从栈中取出 K 个硬币的最大面值和】
解题思路
典型的动态规划问题。
定义状态:dp[i][j] 表示前 i 个栈取 j 次得到的最大和。
状态转移:在第 i 个栈取几个,即 dp[i][j] = max{dp[i-1][j-t] + sum(i, t)},其中 sum(i, t) 表示在第 i 个栈取 t 个硬币得到的和。