第 111 场力扣夜喵双周赛
统计和小于目标的下标对数目
使用排序 + 双指针优化。如果 \(nums[lo]+nums[hi]<target\),那么 \([lo+1,hi]\) 范围内的数都能与 \(nums[lo]\) 组成对,\(lo\) 加一;反之,\([lo,hi-1]\) 范围内的数都不能与 \(nums[hi]\) 组成对,\(hi\) 减一。
Java
1 | class Solution { |
C++
1 | class Solution { |
循环增长使字符串子序列等于另一个字符串
贪心取就行。
Java
1 | class Solution { |
C++
1 | class Solution { |
将三个组排序
要将 \(nums\) 变为美丽数组,就要将 \(nums\) 变为非递减的形式,所以问题就变为求最长非递减子序列。
Java
动态规划:
1 | class Solution { |
贪心 + 二分:
1 | class Solution { |
状态机 DP:
有点妙啊,\(dp[i][j]\) 表示将子数组 \([0,i]\) 变为以 \([1,j]\) 为结尾的美丽数组所需的最小修改次数,然后可以空间优化。
1 | class Solution { |
C++
1 | class Solution { |
范围中美丽整数的数目
经典数位 DP 没什么好说的,主要是记忆化取模,边乘边取模。
Java
1 | class Solution { |
C++
1 | class Solution { |
第 111 场力扣夜喵双周赛