当前位置: 首页 > news >正文

leetcode:2899. 上一个遍历的整数(python3解法)

难度:简单

给你一个整数数组 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 <= 100
  • nums[i] == -1 或 1 <= nums[i] <= 100

题解:

class 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解法)

难度&#xff1a;简单 给你一个整数数组 nums &#xff0c;其中 nums[i] 要么是一个正整数&#xff0c;要么是 -1 。我们需要为每个 -1 找到相应的正整数&#xff0c;我们称之为最后访问的整数。 为了达到这个目标&#xff0c;定义两个空数组&#xff1a;seen 和 ans。 从数组 …...

Mysql读写分离(2)-中间件mycat和实践方案

系统环境要求 Mysql版本5.5版本以上jdk1.7Mycat1.6 mycat使用Java开发&#xff0c;因为用到了JDK 7的部分功能&#xff0c;所以在使用前请确保安装了JDK 7.0&#xff0c;并设置了正确的Java环境变量&#xff08;可在命令行窗口输入&#xff1a;“java –version”获知是否安装…...

QT之在多线程中如何优雅的处理资源泄漏

概述 在多线程编程中,资源泄漏是一个常见且需要特别关注的问题。资源泄漏通常指的是程序未能正确释放分配给它的资源(如内存、文件句柄、数据库连接等),这可能导致系统性能下降甚至崩溃。尤其是在多线程环境中,由于多个线程可能同时访问相同的资源,增加了管理这些资源的…...

SPA 收入支出/技师提成自动统计系统——仙盟共创平台——未来之窗

支出 spa服务 使用开始&#xff1a;https://mp.weixin.qq.com/s/Ok3wuSYAPhd-6N8DrK7jwg 收入清晰呈现&#xff1a;自动整合 SPA 门店各类服务项目收入数据&#xff0c;包括面部护理、身体按摩、特色疗程等。通过对接收银系统&#xff0c;实时记录每笔消费金额&#xff0c;按不…...

Linux的应用领域,测试与Linux,Linux的介绍,VirtualBox和Ubuntu的安装,VMware的安装和打开虚拟机CentOS

目录 Linux的应用领域 测试人员在Linux的工作 测试人员需要掌握Linux的程度 Linux的介绍 Linux的介绍 Linux发行版 Unix和Linux的渊源 虚拟机和Linux的安装 VirtualBox和Ubuntu的安装 安装VirtualBox 安装Ubuntu 下载Ubuntu操作系统的镜像文件 创建虚拟机 虚拟机…...

《Not All Tokens Are What You Need for Pretraining》全文翻译

《Not All Tokens Are What You Need for Pretraining》 不是所有的词元都是预训练所需 摘要 先前的语言模型预训练方法通常对所有训练词元均匀地应用下一词预测损失。对此常规做法提出挑战&#xff0c;我们认为“语料库中的并非所有词元对于语言模型训练同等重要”。我们的…...

vscode终端运行windows服务器的conda出错

远程windows服务器可以运行&#xff0c;本地vscode不能。 打开vscode settings.json文件 添加conda所在路径...

使用基数树优化高并发内存池(替代加锁访问的哈希表和红黑树)

前言&#xff1a; 本篇旨在熟悉 基于tcmalloc的高性能并发内存池项目之后&#xff0c;对于最后的优化进行的笔记梳理&#xff0c;项目完整代码 可点击&#xff1a;项目代码 进行查看。 优化思想风暴&#xff1a; 为了方便根据页号查找到对应的span, 这里我们可以使用红黑树或…...

【bash】.bashrc

查看当前路径文件数量 alias file_num"ls -l | grep ^- | wc -l"查看文件大小 alias file_size"du -sh"alias ll alias ll"ls -ltrh"cd的同时执行ll alias cdcdls; function cdls() {builtin cd "$1" && ll }自定义prompt…...

自我生成,自我训练:大模型用合成数据实现“自我学习”机制实战解析

目录 自我生成&#xff0c;自我训练&#xff1a;大模型用合成数据实现“自我学习”机制实战解析 一、什么是自我学习机制&#xff1f; 二、实现机制&#xff1a;如何用合成数据实现自我训练&#xff1f; ✅ 方式一&#xff1a;Prompt强化生成 → 自我采样再训练 ✅ 方式二…...

Linux的命令格式,运行级别,找回root密码,Linux用户的分类,绝对路径和相对路径,硬链接和软链接,实用按键

目录 Linux的命令格式 运行级别 运行级别说明 切换运行级别 指定默认的运行级别 找回root密码 找回root密码 可能会出现的问题 Linux的用户分类 绝对路径和相对路径 硬链接和软链接 实用按键 Linux的命令格式 Linux的命令格式&#xff1a; command [-options] [par…...

C# JSON

在C#中&#xff0c;你可以使用System.Text.Json或Newtonsoft.Json库来解析JSON字符串。以下是使用这两种库分别解析你提供的JSON字符串的示例。 1. 使用 System.Text.Json System.Text.Json 是 .NET Core 3.0 及以上版本中包含的内置JSON库。以下是如何使用它来解析你的JSON字…...

入门-C编程基础部分:6、常量

飞书文档https://x509p6c8to.feishu.cn/wiki/MnkLwEozRidtw6kyeW9cwClbnAg C 常量 常量是固定值&#xff0c;在程序执行期间不会改变&#xff0c;可以让我们编程更加规范。 常量可以是任何的基本数据类型&#xff0c;比如整数常量、浮点常量、字符常量&#xff0c;或字符串字…...

数字时代的AI与大数据:用高级AI开发技术革新大数据管理

李升伟 编译 在当今数字时代&#xff0c;数据的爆炸式增长令人惊叹 从社交媒体互动到物联网设备的传感器数据&#xff0c;企业正被海量信息淹没。但如何将这种无序的数据洪流转化为有价值的洞察&#xff1f;答案在于人工智能&#xff08;AI&#xff09;开发技术的革新&#x…...

数据结构与算法入门 Day 0:程序世界的基石与密码

&#x1f31f;数据结构与算法入门 Day 0&#xff1a;程序世界的基石与密码&#x1f511; ps&#xff1a;接受到了不少的私信反馈&#xff0c;说应该先把前置的知识内容做一个梳理&#xff0c;所以把昨天的文章删除了&#xff0c;重新开启今天的博文写作 Hey 小伙伴们&#xff…...

20250416在荣品的PRO-RK3566开发板的Android13下编译native C的应用程序的步骤

mm编译的简略步骤以及详细LOG&#xff0c;仅供参考&#xff1a; rootrootrootroot-X99-Turbo:~/hailuo_temp/Android13.0$ source build/envsetup.sh rootrootrootroot-X99-Turbo:~/hailuo_temp/Android13.0$ lunch 57. rk3566_t-userdebug Pick from common choices abo…...

Pikachu靶场——Cross-Site Scripting

使用ubantu-linux虚拟机通过docker镜像本地搭建 一&#xff0c;反射型xss(get) 1&#xff0c;观察靶场环境&#xff0c;功能是提交你最喜欢的NBA球星 2&#xff0c;可以通过burp suite抓包分析一下 通过GET请求提交输入的姓名&#xff0c;这是及其危险的 3&#xff0c;尝试使用…...

ArkTS组件的三个通用(通用事件、通用属性、通用手势)

文章目录 通用事件点击事件 onClick触摸事件 onTouch挂载、卸载事件拖拽事件按键事件 onKeyEvent焦点事件鼠标事件悬浮事件组件区域变化事件 onAreaChange组件尺寸变化事件组件可见区域变化事件组件快捷键事件自定义事件分发自定义事件拦截 通用属性尺寸设置位置设置布局约束边…...

双token实现无感刷新

一、方案说明 1. 核心流程 ​用户登录​ 提交账号密码 → 服务端验证 → 返回Access Token&#xff08;前端存储&#xff09; Refresh Token&#xff08;HttpOnly Cookie&#xff09; ​业务请求​ 请求头携带Access Token → 服务端验证有效性 → 有效则返回数据 ​Token过…...

UE5游戏分辨率设置和窗口模式

第一种方法: 在项目配置Config文件夹下新建 DefaultGameUserSettings.ini 输入代码 [/Script/Engine.GameUserSettings] bUseVSyncFalse ResolutionSizeX1960 ResolutionSizeY1080 LastUserConfirmedResolutionSizeX800 LastUserConfirmedResolutionSizeY600 WindowPosX-1 …...

Java 线程中断 Interrupted

线程中断是 Java 中的一种协作机制&#xff0c;用于通知线程应该停止当前工作并退出。 中断就好比其它线程跟当前线程打了个招呼&#xff0c;告诉他可以执行中断操作。其他线程通过调用该线程的interrupt()方法对其进行中断操作。 中断并不会直接终止线程&#xff0c;而是设置…...

Android Jetpack是什么与原生android 有什么区别

Android Jetpack是什么 Android Jetpack是Google推出的一套开发组件工具集,旨在帮助开发者更高效地构建高质量的Android应用。它包含多个库和工具,被分为架构、用户界面、行为和基础四大类。以下是一些Android Jetpack的示例: 架构组件 ViewModel:用于以生命周期的方式管理…...

从0~1写一个starer启动器

从0到1编写一个Spring Boot Starter 前言 使用过Spring框架的伙伴都知道&#xff0c;虽然Spring在一定程度上帮助我们简化了集成其他框架&#xff0c;但在集成框架的同时仍少不了大量的XML配置&#xff0c;这些繁琐的工作无疑会加重我们的工作任务。而Spring Boot相较于Sprin…...

prime-2 靶场笔记(vuInhub靶场)

前言&#xff1a; 在本次靶场环境中涉及的知识点&#xff0c;主要包含LFI和SMB以及Lxd组提权&#xff0c;具体内容包括主机探测、端口扫描、目录扫描、wpscan扫描、反弹shell、一句话木马、容器、linux各种提权和维持。 环境介绍&#xff1a; 本靶场使用了kali&#xff08;192…...

Node.js 中的 Buffer(缓冲区)

下面是关于 Node.js 中的 Buffer&#xff08;缓冲区&#xff09; 的系统总结&#xff0c;涵盖了定义、创建、读取修改、溢出处理、中文编码问题以及字符串转换等关键用法&#x1f447; &#x1f9f1; 一、什么是 Buffer&#xff1f; Buffer 是 Node.js 提供的用于处理二进制数…...

如何学习嵌入式

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.16 请各位前辈能否给我提点建议&#xff0c;或者学习路线指导一下 STM32单片机学习总…...

高版本Android (AIDL HAL) 使用HIDL方法

目录 修改步骤和编译方法 注意事项 Android 11 引入了使用 AIDL 实现 HAL 的功能。 后续Android新版本,HAL默认切到了使用AIDL. 因此当导入旧HIDL实现方式时,需要做一些修改。 1.将HAL HIDL模块拷贝到相应目录,进行编译 source build/envsetup.sh lunch xxx mmm 模块路径 1.…...

Cribl (实验) vpc-flow 数据抽样

先看文档: Firewall Logs: VPC Flow Logs, Cisco ASA, Etc. | Cribl Docs Firewall Logs: VPC Flow Logs, Cisco ASA, Etc. Recipe for Sampling Firewall Logs Firewall logs are another source of important operational (and security) data. Typical examples include Ama…...

RK3568 更换显示logo

文章目录 1、环境介绍2、替换logo 1、环境介绍 硬件&#xff1a;飞凌ok3568-c开发板 软件&#xff1a;原厂rk356x sdk 屏幕&#xff1a;1024*600 hdmi屏 2、替换logo 这是一件提无语的事。本来替换logo是很平常的一件事。即替换kernel目录下的logo图片即可&#xff1a; 但…...

修改wsl中发行版Ubuntu的主机名

我wsl2中装了两个ubuntu的发行版本&#xff0c;默认下主机名和我的windows主机名都一样&#xff0c;而且包含大写字母&#xff0c;在配置其他应用时经常会出问题&#xff0c;按照下面的顺序修改了一下&#xff1a; 1、打开ubuntu发行版 现在显示包含大写字母和数字的主机名。 …...

Python学习之路(三)

将 Python 与数据库对接是开发过程中常见的任务&#xff0c;可以使用多种数据库&#xff08;如 SQLite、MySQL、PostgreSQL、Oracle、MongoDB 等&#xff09;。以下是一些常见的数据库及其与 Python 的对接方法&#xff0c;包括安装库、连接数据库、执行查询和操作数据的示例。…...

多功能门禁系统的设计

本课题为多功能门禁系统的设计&#xff0c;其系统架构如图2.1所示&#xff0c;整个系统由STM32F103单片机和MaixBit开发板两部分构成&#xff0c;其中MaixBit是基于K210芯片的开发板&#xff0c;在此主要负责人脸的录入&#xff0c;识别&#xff0c;液晶显示等功能&#xff0c;…...

C/C++---头文件保护机制

在 C 和 C 编程里&#xff0c;头文件保护机制是一种防止头文件被重复包含的技术&#xff0c;它主要借助 #ifndef、#define 和 #endif 这些预处理指令来达成&#xff0c;也可以使用 #pragma once 这一编译器特定指令。下面详细阐述这一机制&#xff1a; 1. 头文件重复包含的问题…...

双指针算法(一)

目录 一、力扣——283、移动零 二、力扣——1089、复写零 三、力扣——11、盛最多的水 四、力扣——202、快乐数 一、力扣——283、移动零 题目如下&#xff1a; 这里我们用双指针算法&#xff0c;用的是双指针的思想&#xff0c;我们在这道题在数组下操作可以用数组下标。…...

LNMP架构部署论坛

目录 1.安装Nginx服务 1.系统初始化​ 2.安装工具包及依赖包 3.创建运行用户​ 4.编译安装​ 5.优化路径​ 6.添加 Nginx 系统服 2.安装MySQL服务 1.确定GLIBC版本 2.上传二进制压缩包并解压​ 3. 创建运行用户​ 4. 创建 mysql 配置文件 5.更改mysql安装目录和配…...

微信小程序边框容器带三角指向

效果图 .wxml <view class"tb"><view class"tb-pointer" style"--n:{{n}}rpx;" /> </view> <button bind:tap"addPixel">增加三角一个像素</button>.js Page({data: {n:16,},addPixel(){this.setData…...

RISCV Hardware Performance Monitor 和 Sscofpmf 扩展

文章目录 前言RISCV的HPMSscofpmf 扩展总结 前言 Perf 全名是 Performance Event&#xff0c;应用可以利用 PMU (Performance Monitoring Unit)、tracepoint 和核心内部的特殊计数器&#xff08;counter&#xff09;来进行统计&#xff0c;另外还能同时分析运行中的核心代码&a…...

MATLAB脚本实现了一个三自由度的通用航空运载器(CAV-H)的轨迹仿真,主要用于模拟升力体在不同飞行阶段(初始滑翔段、滑翔段、下压段)的运动轨迹

%升力体:通用航空运载器CAV-H %读取数据1 升力系数 alpha = [10 15 20]; Ma = [3.5 5 8 10 15 20 23]; alpha1 = 10:0.1:20; Ma1 = 3.5:0.1:23; [Ma1, alpha1] = meshgrid(Ma1, alpha1); CL = readmatrix(simulation.xlsx, Sheet, Sheet1, Range, B2:H4); CL1 = interp2(…...

GIS开发笔记(4)结合osg及osgEarth实现地图选点功能

一、实现效果:在地球上点击某个点后,显示该点的坐标。 二、实现原理: viewer添加事件处理器类,类中响应鼠标左键事件,获取坐标点显示。 三、参考代码: #pragma once#include <osgGA/GUIEventHandler> #include...

halcon模板匹配(五)find_shape_model_clutter

目录 一、find_shape_model_clutter例程目的二、默认模板匹配的过程三、定义杂波区域四、设置模型的杂波区域 一、find_shape_model_clutter例程目的 如下图所示&#xff0c;这个例程是想找到左图所示区域内的目标&#xff0c;要求上下临近区域无目标。 默认参数匹配结果 二…...

openGauss使用指南与SQL转换注意事项

openGauss 使用指南与SQL转换注意事项 基本说明 openGauss数据库内核基于PostgreSQL(pgsql)&#xff0c;因此可以将SQL Server语句转换为pgsql语句。可以使用AI工具辅助转换&#xff0c;但需注意以下关键差异点。 数据类型转换注意事项 字符串类型处理 nvarchar转换&#…...

前端基础之《Vue(5)—组件基础》

一、什么是组件化 1、理解组件化 组件是HTML的扩展&#xff0c;使用粒度较小的HTML元素封装成粒度更大的标签&#xff08;Vue组件&#xff09;。可以实现快速开发、代码复用、提升可维护性。 相当于盖房子&#xff0c;用预制板&#xff0c;不是用一块块砖&#xff0c;一天可以…...

责任链模式(Chain of Responsibility Pattern)

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许将请求沿着处理者链进行传递,直到有一个处理者能够处理该请求为止。在这个模式中,多个处理者对象会形成一个链条,每个处理者都有机会处理请求,或者将请求传递给链条中的下一个处理者。这种模式将…...

C++算法(9):数组作为函数参数,注意事项与实践

C编程中&#xff0c;数组作为函数参数传递是一个常见但容易出错的操作。本文将详细介绍数组作为函数参数时需要注意的关键问题&#xff0c;帮助开发者避免常见的陷阱。 主要注意事项 1. 数组作为参数的本质 参数声明形式实际传递内容大小信息int arr[]数组首地址丢失int arr[…...

特性(Attribute)

特性&#xff08;Attribute&#xff09;的概念 定义 特性是用于向代码元素&#xff08;类、方法、属性等&#xff09;添加元数据的类&#xff0c;继承自 System.Attribute。 元数据提供程序化的描述信息&#xff0c;供运行时或工具&#xff08;如编译器、反射&#xff09;使…...

使用CubeMX新建SysTick延时函数工程——使用中断,不使用HAL_Delay

具体操作步骤看这里&#xff1a;STM32CubeMX学习笔记&#xff08;4&#xff09;——系统延时使用_cubemx systick-CSDN博客 1、SysTick 初始化函数 SysTick 初始化函数由用户编写&#xff0c;里面调用了 SysTick_Config() 这个固件库函数&#xff0c;通过设置该固件 库函数的形…...

从零开始实现 MobileViT 注意力机制——轻量级Transformer Vision Model 的新思路

从零开始实现 MobileViT 注意力机制——轻量级Transformer Vision Model 的新思路 近年来&#xff0c;计算机视觉领域中 Transformer 模型的崛起为图像处理带来了新的活力。特别是在 ViT&#xff08;Vision Transformer&#xff09;模型提出之后&#xff0c;Transformer 在图像…...

Doris部署生产集群最低要求的部署方案

Doris生产集群最低部署方案&#xff08;2025年4月版&#xff09; 一、节点规划与数量 1. FE节点&#xff08;Frontend&#xff09; 数量&#xff1a;至少 3个节点&#xff08;1个Follower 2个 Observer&#xff09;&#xff0c;确保高可用&#xff08;HA&#xff09;。角色分…...

如何实现“一机两用” 寻求安全与效率的完美平衡

#### 一机两用的背景 在数字化时代&#xff0c;无论是企业还是政府部门&#xff0c;都面临着既要处理内部敏感数据&#xff0c;又要访问互联网获取资源的双重需求。这种需求催生了“一机两用”的模式&#xff0c;即同一台终端设备既要连接内网处理核心业务&#xff0c;又要能够…...

楼宇自控系统如何为现代建筑打造安全、舒适、节能方案

在科技飞速发展的当下&#xff0c;现代建筑对功能和品质的要求日益提升。楼宇自控系统作为建筑智能化的核心技术&#xff0c;宛如一位智慧的“管家”&#xff0c;凭借先进的技术手段&#xff0c;为现代建筑精心打造安全、舒适、节能的全方位解决方案&#xff0c;让建筑真正成为…...