二叉树与链表产生碰撞

来提每日一题 2024-09-08 13:34:35
l留学日常 北美求职 留子 转码 近期找工作现状 LeetCode 每天59秒拿下每日一题 国区每日一题今日思路: 动态规划。当前数加入子序列分为两种情况,子序列最后一个数等于当前,此时k不变,若不相等k-1;无需考虑不加入的情况,因为加入到相同数后面不会影响k,但序列会更长。记dp[i][k]为遍历到数字i有k个下标不满足的最长子序列数;若num[i]与num[j]不相等dp[i][k]=max(dp[i][k],dp[j][k-1]+1),若相等dp[i][k]=max(dp[i][k],dp[j][k]+1),这里尽可能使得dp[i]值大,所以dp[j]选择前面最大的,使用mx来维护,且可以压缩至一维,倒序遍历K转移;有dp[i]=max(dp[i],mx[i])+1,这里mx数组向右偏移1个单位,mx[i]表示有i-1个不同。 国际站每日一题今日思路: DFS。遍历二叉树,若找到与链表头节点相同的值,尝试从当前位置开始寻找向下路径;若找到返回true进行剪枝;否则根据节点值相同情况选择是否继续递归。看到这点个赞吧[喝奶茶R]
0 阅读:0