Leetcode:学习记录(二)

按照https://leetcode.cn/circle/discuss/RvFUtj/顺序刷题

零、经验记录

1. 学会画图分析

2. 学会找终止条件

3. 做一道就高质量完成

一、二分算法

0. 总结:大于某个数的第一个数的位置有固定模板,其中要讨论最后一个数小于等于目标数的情况

1. 二分查找:在升序数组中查找某数,如果存在则返回下标,不存在则返回-1

a. 自己的想法:left、mid、right三个指针迭代,注意终止条件,一是mid对应的元素为该数,二是到了只剩两个元素时,那么此时mid=left,如果right对应元素为该数,则返回下表right,如果不是,则代表数组中没有该数,返回-1

b. 存在的问题:判断条件复杂,原因是边界不好,每次判断完大小后,实际上mid对应的元素就可以被排除了。如果nums[mid] > target: right = mid-1。如果nums[mid]<target:left=mid+1。

c. 一点点的疏忽会带来极大的麻烦,要求逻辑足够严谨,充分利用已有信息。

2. 寻找比目标字母大的最小字母:找到一个非递减字符数组中比目标字母大的最小字母

a. 自己的想法:三指针迭代,迭代方式为: if letters[mid] <= target: left= mid+1; if letters[mid] > target: right = mid

b. 存在的问题:没考虑到字母之间可以直接比较(上面是改正后的),没有搞清终止条件。如下图,首先排除target不在该字符数组的两种情况,然后递推即可。

3. 正整数和负整数的最大计数:统计非递减数组的正整数数量和负整数数量中的最大值

a. 自己的想法:需要计算pos和neg的数量,首先如果第一个数大于0或者最后一个数小于0,那么该数组全正或全负,返回数组长度即可。然后分别找到大于0的第一个数的位置和小于0的最后一个数的位置。这里需要注意避免陷入死循环,需要考虑遍历尽头。

b.存在的问题:小于0的最后一个数容易陷入死循环,可以转换为大于等于-1的第一个数,然后这个数的前一个数就必然是最后一个负整数。

4. 两个数组间的距离值:数组1中的元素与数组2中的所有元素距离大于d的数量

a. 自己的想法:

     遍历arr1,其中每个数字作为target,去寻找arr2中大于等于和小于target的最后一个数

     最小的那个如果距离满足大于d,那么该数字满足距离要求

b.存在的问题:arr1不需要排序,找到了大于等于target的第一个数之后,前一个数即为小于target的最后一个数

c. 时间复杂度分为两部分,arr2排序为n2logn2,后面的二分查找为n1logn2,空间复杂度为n1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972538.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch AI Assistant 集成 DeepSeek,1分钟搭建智能运维助手

作者&#xff1a;来自阿里云 - 魏子珺 简介&#xff1a; Elasticsearch 新支持 DeepSeek 系列模型&#xff0c;使用 AI 助手&#xff0c;通过自然语言交互&#xff0c;为可观测性分析、安全运维管理及数据智能处理提供一站式解决方案。 一、Elasticsearch AI Assistant 介绍 E…

DeepSeek操作Excel,实现图表自动化生成

案例 让DeepSeek操作Excel&#xff0c;实现图表自动化生成。我们只要用自然语言输入我们的需求&#xff08;根据哪块单元格区域做什么图表&#xff09;&#xff0c;就可以直接在Excel中自动生成图表。 操作主界面和图表效果 设置接入方式 这里提供了多种接入方式将DeepSeek接…

在 .NET 8/9 中使用 AppUser 进行 JWT 令牌身份验证

文章目录 一、引言二、什么是 JSON Web 令牌&#xff1f;三、什么是 JSON Web 令牌结构&#xff1f;四、设置 JWT 令牌身份验证4.1 创建新的 .NET 8 Web API 项目4.2 安装所需的 NuGet 软件包4.3 创建 JWT 配置模型4.4 将 JWT 配置添加到您的 appsettings.json 中4.5 为 Config…

【R语言】主成分分析与因子分析

一、主成分分析 主成分分析&#xff08;Principal Component Analysis, PCA&#xff09;是一种常用的无监督数据降维技术&#xff0c;广泛应用于统计学、数据科学和机器学习等领域。它通过正交化线性变换将&#xff08;高维&#xff09;原始数据投影到一个新的坐标系&#xff…

linux下pip下载项目失败

想下载CLIP的项目复现代码的时候&#xff0c;出现问题如下&#xff1a; 于是手动使用 Git 克隆仓库&#xff0c; git clone https://github.com/openai/CLIP.git cd CLIP pip install .ls查看文件如下&#xff1a;(手动克隆git项目成功)

Windows桌面系统管理8:项目实施

Windows桌面系统管理0&#xff1a;总目录-CSDN博客 Windows桌面系统管理1&#xff1a;计算机硬件组成及组装-CSDN博客 Windows桌面系统管理2&#xff1a;VMware Workstation使用和管理-CSDN博客 Windows桌面系统管理3&#xff1a;Windows 10操作系统部署与使用-CSDN博客 Wi…

【JavaScript】实战案例-放大镜效果、图片切换

目录 实现这种图片切换的和放大镜的效果&#xff1a; 第一步&#xff1a;图片的切换 第二步&#xff1a;鼠标经过中等盒子&#xff0c;显示隐藏大盒子 第三步&#xff1a;黑色遮罩盒子跟着鼠标来移动 遮罩层盒子移动的坐标&#xff1a; 总结一下~本章节对我有很大的收获…

windows使用clion运行lua文件,并且使用cjson

需要文件&#xff1a;clion&#xff0c;lua-5.4.2_Win64_bin&#xff0c;lua-5.4.2_Win64_dllw6_lib&#xff0c;lua-cjson-2.1.0.9&#xff0c;mingw64 1&#xff0c;下载安装clion。 2&#xff0c;下载lua windows运行程序 lua官网&#xff1a;http://www.lua.org/download…

人工智能基础之数学基础:01高等数学基础

函数 极限 按照一定次数排列的一列数:“&#xff0c;“,…,"…&#xff0c;其中u 叫做通项。 对于数列{Un}如果当n无限增大时&#xff0c;其通项无限接近于一个常数A&#xff0c;则称该数列以A为极限或称数列收敛于A&#xff0c;否则称数列为发散&#xff0c; 极限值 左…

flink-cdc同步数据到doris中

1 创建数据库和表 1.1 数据库脚本 -- 创建数据库eayc create database if not exists ods_eayc; -- 创建数据表2 数据同步 2.1 flnk-cdc 参考Flink CDC实时同步MySQL到Doris Flink CDC 概述 2.1.1 最简单的单表同步 从下面的yml脚本可以看到&#xff0c;并没有doris中创建…

CUDA兼容NVIDA版本关系

CUDA组成 兼容原则 CUDA 驱动(libcuda.so)兼容类型要求比CUDA新向后兼容无主版本一致&#xff0c;子版本旧兼容需要SASS、NVCC比CUDA老向前兼容提取对应兼容包 向后兼容&#xff1a;新版本支持旧版本的内容&#xff0c;关注的是新版本能否处理旧版本的内容。 向前兼容&#…

要配置西门子G120AX变频器实现**端子启停**和**Modbus RTU(485)频率给定

要配置西门子G120AX变频器实现端子启停和Modbus RTU&#xff08;485&#xff09;频率给定&#xff0c;需调整以下关键参数&#xff1a; 1. 端子启停控制 P29652[0]&#xff1a;设置启停信号源 &#xff08;例&#xff1a;P29652 [0] 722.0 表示用DI0端子作为启动/停止信号&…

撕碎QT面具(3):解决垂直布局的内容显示不全

问题&#xff1a;内容显示不全 解决方案&#xff1a;增加Vertical Spacer&#xff0c;它会把Group Box控件挤上去&#xff0c;让内容显示完全。 结果展示&#xff1a;

LabVIEW 中的 ax - events.llb 库

ax - events.llb 库位于C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform目录&#xff0c;它是 LabVIEW 平台下与特定事件处理相关的重要库。该库为 LabVIEW 开发者提供了一系列工具&#xff0c;用于有效地处理和管理应用程序中的各种事件&#xff0…

Macos机器hosts文件便捷修改工具——SwitchHosts

文章目录 SwitchHosts软件下载地址操作添加方案切换方案管理方案快捷键 检测 SwitchHosts SwitchHosts 是一款 Mac 平台上的免费软件&#xff0c;它可以方便地管理和切换 hosts 文件&#xff0c;支持多种 hosts 文件格式。 软件下载地址 SwitchHosts 操作 添加方案 添加 …

【算法】双指针(下)

目录 查找总价格为目标值的两个商品 暴力解题 双指针解题 三数之和 双指针解题(左右指针) 四数之和 双指针解题 双指针关键点 注意事项 查找总价格为目标值的两个商品 题目链接&#xff1a;LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#x…

嵌入式linux利用标准字符驱动模型控制多个设备方法

一、驱动模型概述 Linux标准字符设备驱动模型基于以下核心组件: 设备号:由主设备号(Major)和次设备号(Minor)组成 cdev结构体:表征字符设备的核心数据结构 文件操作集合:file_operations结构体定义设备操作 sysfs接口:提供用户空间设备管理能力 传统单设备驱动与多设…

【可实战】Linux 常用统计命令:排序sort、去重uniq、统计wc

在 Linux 系统中&#xff0c;有一些常用的命令可以用来收集和统计数据。 一、常用统计命令的使用场景 日志分析和监控&#xff1a;通过使用 Linux 统计命令&#xff0c;可以实时监控和分析系统日志文件&#xff0c;了解系统的运行状况和性能指标。例如&#xff0c;使用 tail 命…

在 macOS 的 ARM 架构上按住 Command (⌘) + Shift + .(点)。这将暂时显示隐藏文件和文件夹。

在 macOS 的 ARM 架构&#xff08;如 M1/M2 系列的 Mac&#xff09;上&#xff0c;设置 Finder&#xff08;访达&#xff09;来显示隐藏文件夹的步骤如下&#xff1a; 使用快捷键临时显示隐藏文件&#xff1a; 在Finder中按住 Command (⌘) Shift .&#xff08;点&#xff…

分享一个解梦 Chrome 扩展 —— 周公 AI 解梦

一、插件简介 周公 AI 解梦是一款基于 Chrome 扩展的智能解梦工具&#xff0c;由灵机 AI 提供技术支持。它能运用先进的 AI 技术解析梦境含义&#xff0c;为用户提供便捷、智能的解梦服务。无论你是对梦境充满好奇&#xff0c;还是想从梦境中获取一些启示&#xff0c;这款插件都…