Leetcode 超难题目 Hard

发布时间:2024年01月05日

动态规划

2945. 找到最大非递减数组的长度 (难度分2943,“超难”)

这道题很有可能是LC主站(LCP除外)新的天花板,之所以难度分没有超过1719题,是因为双周赛样本量本身不多,而这题有一定的“猜结论”。某个LC积分2900+的大佬认为,即使数据范围只有1000,这也是一道相当难的题目。因为记录dp[j]为最优时,nums[j]的最小值(注意nums[j]很可能是被改过的),这样的DP本身就很难想到。而同时保证dp[j]最大nums[j]最小是否就更利于后面的转移,这点非常难证明。这个题的数据范围并不是1000,因此需要单调数据结构优化来保证复杂度合理。

2809. 使数组和小于等于 x 的最少时间 (难度分2978,“超难”)

思路也是非常难想的,只是代码很好写。很显然重复操作相同下标一定是血亏的,而根据排序不等式,如果选了一些下标j,则对应nums2元素较大的j应该尽量晚操作。因此正解是转化为二维DP,状态定义为前i个数(注意是按nums2从小到大排好的前i个)中操作j个数,能减少的数组和。然后根据每多操作一次总和增加sum(nums2),遍历DP数组找答案。注意这道题二分猜答案是错误的,由于每操作一次都会带来额外的数组和,操作j次能满足题意,但操作j+1次做不到是很正常的。

2851.字符串转换 (难度分2857,“超纲”)

题号和难度分正好是相邻素数~这道题有2个超纲点

文章来源:https://blog.csdn.net/weixin_43955170/article/details/135416558
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。