Leetcode:学习记录

news/2025/2/15 16:29:20/

一、滑动窗口

1. 找出数组中元素和大于给定值的子数组的最小长度

右指针从左到右遍历,在每个右指针下,如果去掉左边元素的元素和大于等于给定值则左指针右移一次,直到小于给定值,右指针右移一个。

2.找到乘积小于给定值的子数组的数量

右指针从左到右遍历,在每个右指针下,乘积大于等于给定值则左指针右移一次,直到小于给定值,右指针右移一个。

3.无重复字符的最长子串长度

右指针从左到右遍历,在每个右指针下,如果有重复左指针右移一次,直到没有重复,右指针右移一个。

二、二分法

1.在排序数组中查找元素的第一个和最后一个位置

红蓝染色法:查找第一个或最后一个或者小于等于或者小于或者大于给定值的第一个元素都可以转换成第一个大于等于给定值的问题。例如第一个等于给定值的元素,则是第一个大于等于给定值的元素,且等于给定值。大于等于给定值的元素,左指针右指针从两边开始,中间大于等于给定值则右指针变为中间,反之则左指针变为中间。

2.查找数组的峰值元素

红蓝染色法:峰值左侧红色,峰值右侧蓝色。L\M\R,M与右侧相比,如果大于右侧,那么右侧都是蓝色,如果小于那么左侧都是红色。

3.搜索旋转排序数组最小值

红蓝染色法:以最后一个元素为界可以区分两段,L\M\R中M小于最后一个元素,那么M就在右边一段,M的右侧就是蓝色,大于最后一个元素,M就在左边一段,M的左侧是红色。

三、链表

1.反转链表

遍历每个节点,cur为当前节点,cur的next保存为nxt后变为pre,pre变为cur,cur变为nxt,循环。即用完这个变量后再改变这个变量。

2.链表中间节点

快慢指针法:慢指针走一步,快指针走两步,快指针走到最后一个节点或者空节点时,慢指针就再中间节点。

3.环形链表

快慢指针法:慢指针走一步,快指针走两步,快指针相对来说走一步,那么如果存在环形链表,快指针必然会赶上慢指针。

4.重排链表

1和2结合,找到中间节点并翻转右侧部分,然后交叉。

5.删除链表某个节点

将该节点的值修改为下一个节点的值,该节点的next修改为下一个节点的next。

6.删除链表的倒数第N个节点

前后指针:前指针指向dummy node,后指针dummy node后移动n步。然后同步走,直到后指针为最后一个节点,然后删除前指针的后一个节点。

7.删除排序链表中的重复元素

如果下一个节点的值与当前节点相同,则删除下一个节点。

 


http://www.ppmy.cn/news/1572293.html

相关文章

web前端第三次作业

题目 本期作业 WEB第三次作业 请使用JS实一个网页中登录窗口的显示/隐藏&#xff0c;页面中拖动移动&#xff0c;并且添加了边界判断的网页效 代码图片 效果展示 代码 <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8&qu…

保存字典类型的文件用什么格式比较好

保存 Python 字典类型的数据时&#xff0c;有几个常见的格式可以选择&#xff0c;这些格式都具有良好的可读性和提取内容的便利性。以下是几种推荐的格式&#xff1a; JSON 格式&#xff1a; 优点&#xff1a;JSON 格式非常适合存储和传输结构化数据&#xff0c;具有良好的跨平…

ruby 的安装

在51cto搜索的资料 ruby on rails的安装 http://developer.51cto.com/art/200906/129669.htm http://developer.51cto.com/art/200912/169391.htm http://developer.51cto.com/art/200908/147276.htm 史上最完整的ruby&#xff0c;rails环境架设配置&#xff08;Apachefast…

基于SpringBoot+uniapp的在线办公小程序+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户功能模块&#xff1a;员工管理、部门信息管理、职位信息管理、会议记录、待办事项、工资信息、留言板等技术选型&#xff1a;SpringBoot&#xff0c;Vue&#xff08;后端管理web&#xff09;&#xff0c;uniapp等测试环境&…

Docker 完整示例以及常见问题

Docker 完整示例以及常见问题 前言 Docker 是一种开源的容器化平台&#xff0c;它可以帮助开发者将应用程序及其依赖项打包成容器&#xff0c;以便在不同的环境中运行。 这是一个使用 Dockerfile 打包应用程序并配置 Docker 容器的完整示例。 通过 docker commit、docker s…

DeepSeek R1本地部署 DeepSeek Api接口调用 DeepSeek RAG知识库工作流详解

DeepSeek R1本地部署 DeepSeek Api接口调用 DeepSeek RAG知识库工作流详解全集&#xff1a; 第一部分&#xff1a;Windows本地部署DeepSeek R1 第二部分&#xff1a;Macos本地部署DeepSeek R1 第三部分&#xff1a;Linux本地部署DeepSeek R1 第四部分&#xff1a;DeepSeek …

DeepSeek 背后的技术:GRPO,基于群组采样的高效大语言模型强化学习训练方法详解

强化学习&#xff08;Reinforcement Learning, RL&#xff09;已成为提升大型语言模型&#xff08;Large Language Models, LLMs&#xff09;推理能力的重要技术手段&#xff0c;特别是在需要复杂推理的任务中。DeepSeek 团队在 DeepSeek-Math [2] 和 DeepSeek-R1 [3] 模型中的…

建造者模式详解(Java)

建造者模式(Builder Pattern)是一种创建型设计模式,通过将复杂对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。这种模式提供了一种灵活的方式来构建复杂对象,从而提高代码的可读性和可维护性。本文将从建造者模式的原理、背景、优缺点、应用场景以及实际…