难度:简单
给你一个整数数组
nums,其中nums[i]要么是一个正整数,要么是-1。我们需要为每个-1找到相应的正整数,我们称之为最后访问的整数。为了达到这个目标,定义两个空数组:
seen和ans。从数组
nums的头部开始遍历。
- 如果遇到正整数,把它添加到
seen的 头部。- 如果遇到
-1,则设k是到目前为止看到的 连续-1的数目(包括当前-1),
- 如果
k小于等于seen的长度,把seen的第k个元素添加到ans。- 如果
k严格大于seen的长度,把-1添加到ans。请你返回数组
ans。示例 1:
输入:nums = [1,2,-1,-1,-1] 输出:[2,1,-1] 解释: 开始时 seen = [] 且 ans = []。 1.处理 nums[0]:nums 中的第一个元素是 1。我们将其放在 seen 的前面。现在,seen == [1]。 2.处理 nums[1]:下一个元素是 2。我们将其放在 seen 的前面。现在,seen == [2, 1]。 3.处理 nums[2]:下一个元素是 -1。这是 -1 的第一次出现,所以 k == 1。我们找到 seen 中的第一个元素,把 2 添加到 ans。现在,ans == [2]。 4.处理 nums[3]:又一个 -1。这是 -1 的第二次出现,所以 k == 2。seen 中的第二个元素是 1,所以我们把 1 添加到 ans。现在,ans == [2, 1]。 5.处理 nums[4]:又一个 -1。第三次出现,让 k = 3。然而,seen 中只有两个元素([2, 1])。因为 k 比 seen 中的元素数量更大,我们把 -1 添加到 ans。最终,ans == [2, 1, -1]。示例 2:
输入:nums = [1,-1,2,-1,-1] 输出:[1,2,1] 解释: 开始时 seen = [] 且 ans = []。 1.处理 nums[0]:nums 中的第一个元素是 1。我们将其放在 seen 的前面。现在,seen == [1]。 2.处理 nums[1]:下一个元素是 -1。这是 -1 的第一次出现,所以 k == 1。我们找到 seen 中的第一个元素,即 1。把 1 添加到 ans。现在,ans == [1]。 3.处理 nums[2]:下一个元素是 2。我们将其放在 seen 的前面。现在,seen == [2, 1]。 4.处理 nums[3]:下一个元素是 -1。这个 -1 与 第一个 -1 不连续,因为中间有个 2。因此,k 重置为 1。seen 中的第一个元素是 2,所以我们把 2 添加到 ans。现在,ans == [1, 2]。 5.处理 nums[4]:又一个 -1。它与前一个 -1 相邻,所以 k == 2。seen 中的第 2 个元素是 1。把 1 添加到 ans。最终,ans == [1, 2, 1]。提示:
1 <= nums.length <= 100nums[i] == -1或1 <= nums[i] <= 100
题解:
pythonclass Solution: def lastVisitedIntegers(self, nums: List[int]) -> List[int]: ans = [] seen = [] k = 0 # 记录当前连续的 -1 的数量 for i in nums: if i != -1: seen.insert(0, i) # 插入到头部 k = 0 # 遇到非 -1,重置连续 -1 计数 else: k += 1 if k <= len(seen): ans.append(seen[k - 1]) # 第 k 个元素(0-based) else: ans.append(-1) return ans
leetcode:2899. 上一个遍历的整数(python3解法)
心软且酷丶2025-04-18 12:03
相关推荐
闻缺陷则喜何志丹3 分钟前
【分块 差分数组 逆元】3655区间乘法查询后的异或 II|2454superbadguy10 分钟前
用curl实现Ollama API流式调用嚴 帅11 分钟前
Pytnon入门学习(一)葛小白113 分钟前
C#进阶12:C#全局路径规划算法_Dijkstra前端小L14 分钟前
图论专题(五):图遍历的“终极考验”——深度「克隆图」小兵张健15 分钟前
Java + Spring 到 Python + FastAPI (二)CoovallyAIHub35 分钟前
超越像素的视觉:亚像素边缘检测原理、方法与实战CoovallyAIHub37 分钟前
中科大西工大提出RSKT-Seg:精度速度双提升,开放词汇分割不再难gugugu.37 分钟前
算法:位运算类型题目练习与总结vvoennvv39 分钟前
【Python TensorFlow】BiTCN-BiLSTM双向时间序列卷积双向长短期记忆神经网络时序预测算法(附代码)