讨论/题目交流/🏆 第 187 场力扣周赛/
🏆 第 187 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

3 分 - 旅行终点站
4 分 - 是否所有 1 都至少相隔 k 个元素
5 分 - 绝对差不超过限制的最长连续子数组
7 分 - 有序矩阵中的第 k 个最小数组和

展开讨论

第三题:

代码块
class Solution:
    def longestSubarray(self, nums: List[int], limit: int) -> int:
        min_d, max_d = float('inf'), float('-inf')
        ans = 0
        ans_list = []
        for i, data in enumerate(nums):
            min_d = min(data, min_d)
            max_d = max(data, max_d)
            if max_d - min_d > limit:
                for pos in range(len(ans_list), 0, -1):
                    if abs(ans_list[pos - 1] - data) > limit:
                        ans_list = ans_list[pos:]
                        ans_list.append(data)
                        max_d = max(ans_list)
                        min_d = min(ans_list)
                        break
            else:
                ans_list.append(data)
            ans = max(len(ans_list), ans)
        return ans
展开全部 18 讨论