开天猫旗舰店网站建设/如何做推广最有效果

开天猫旗舰店网站建设,如何做推广最有效果,系统小说,wordpress自建邮箱关于每个知识点的例题 可以自己看力扣标准题解。也可以在哔哩哔哩上看。想看我的,就到github 看 - 库 ,介绍里写的算法讲解那些,里面有知识点,有题库。题库,每天都发题,可能跟博客的进度不一样。因为我上传…

一、了解双指针

双指针(Two Pointers)是一种常用的算法技巧,通常用于解决数组或链表中的问题。它的核心思想是使用两个指针(或索引)在数据结构中遍历或搜索,从而高效地解决问题。双指针技巧通常可以将时间复杂度从 (O(n^2)) 优化到 (O(n))。

推荐先看这个视频,再看下面文章


二、 双指针的常见应用场景

  1. 有序数组的两数之和

    • 给定一个有序数组和一个目标值,找到两个数使它们的和等于目标值。
    • 使用双指针,一个指向数组开头,一个指向数组末尾,根据和的大小移动指针。
  2. 移除数组中的重复元素

    • 给定一个有序数组,原地移除重复元素。
    • 使用双指针,一个指针用于遍历数组,另一个指针用于记录非重复元素的位置。
  3. 滑动窗口问题

    • 给定一个数组和一个窗口大小,找到满足条件的子数组。
    • 使用双指针表示窗口的左右边界,根据条件滑动窗口。
  4. 链表的快慢指针

    • 判断链表是否有环,或找到链表的中间节点。
    • 使用快慢指针,快指针每次移动两步,慢指针每次移动一步。

二、 双指针的技巧总结

1. 对撞指针

对撞指针 是一种常用的双指针技巧,通常用于解决数组或字符串中的问题。它的核心思想是使用两个指针,一个从数组的起始位置(左指针)开始,另一个从数组的末尾位置(右指针)开始,通过向中间移动来解决问题。


1.1、对撞指针的核心思想

  1. 指针的初始化

    • 左指针 l 指向数组的起始位置(l = 0)。
    • 右指针 r 指向数组的末尾位置(r = nums.size() - 1)。
  2. 指针的移动规则

    • 根据问题的要求,决定左指针或右指针的移动方向。
    • 通常,左指针向右移动,右指针向左移动。
  3. 终止条件

    • 当左指针和右指针相遇或交叉时,算法结束。

1.2、对撞指针的总结

  1. 适用场景

    • 有序数组中的两数之和、三数之和。
    • 反转数组或字符串。
    • 验证回文串。
    • 盛最多水的容器。
  2. 核心思想

    • 使用两个指针从数组的两端向中间移动,通过比较指针指向的元素来解决问题。
  3. 时间复杂度

    • 通常为 (O(n)),因为每个元素最多被访问一次。
  4. 空间复杂度

    • 通常为 (O(1)),只使用了常数级别的额外空间。

2. 快慢指针

快慢指针 是一种常用的双指针技巧,通常用于解决链表或数组中的问题。它的核心思想是使用两个指针,一个移动速度快(快指针),一个移动速度慢(慢指针),通过它们的相对移动来解决问题。


2.1、快慢指针的核心思想

  1. 快指针和慢指针的移动速度

    • 快指针每次移动两步。
    • 慢指针每次移动一步。
  2. 相对速度

    • 快指针和慢指针的相对速度是 1,即快指针每次比慢指针多走一步。
  3. 终止条件

    • 当快指针到达链表末尾(或数组末尾)时,慢指针通常指向目标位置。

2.2、快慢指针的总结

  1. 适用场景

    • 链表中的环检测、中间节点查找。
    • 数组中的重复元素删除、重复数查找。
  2. 核心思想

    • 快指针和慢指针以不同的速度移动,通过相对速度解决问题。
  3. 时间复杂度

    • 通常为 (O(n)),因为每个元素最多被访问两次。
  4. 空间复杂度

    • 通常为 (O(1)),只使用了常数级别的额外空间。

3. 滑动窗口

3.1、滑动窗口的两种情况

3.1.1、情况1:固定大小的窗口
  • 特点
    • 窗口的大小是固定的。
    • 通常用于解决需要在固定长度的子数组或子串中查找满足条件的问题。
  • 示例问题
    • 在一个数组中,找到长度为 k 的连续子数组,使得子数组的和大于 target
  • 解决方法
    • 初始化左指针 l = 0,右指针 r = k - 1
    • 计算窗口内的和,如果满足条件,返回结果。
    • 如果不满足条件,移动窗口:l++r++,继续检查新的窗口。
3.1.2、情况2:可变大小的窗口
  • 特点
    • 窗口的大小不固定。
    • 通常用于解决需要在不定长度的子数组或子串中查找满足条件的问题。
  • 示例问题
    • 在一个数组中,找到和大于等于 target 的最短连续子数组。
  • 解决方法
    • 初始化左指针 l = 0,右指针 r = 0
    • 右指针 r 向右移动,扩大窗口,直到窗口内的和满足条件。
    • 左指针 l 向右移动,缩小窗口,尝试找到更短的满足条件的子数组。

3.4、滑动窗口的核心思想

  1. 窗口的定义

    • 窗口是数组或字符串中的一个连续子区间,由左指针 l 和右指针 r 定义。
  2. 窗口的移动

    • 扩大窗口:右指针 r 向右移动,增加窗口的大小。
    • 缩小窗口:左指针 l 向右移动,减少窗口的大小。
  3. 条件的判断

    • 在窗口移动的过程中,根据问题的要求判断当前窗口是否满足条件。

4. 分离指针

分离指针 是一种双指针技巧,通常用于解决涉及多个数组或链表的问题。它的核心思想是使用两个指针分别遍历不同的数组或链表,通过它们的相对移动来解决问题。


4.1、分离指针的常见应用场景

  1. 合并两个有序数组或链表

    • 将两个有序数组合并为一个有序数组。
    • 将两个有序链表合并为一个有序链表。
  2. 查找两个数组的交集

    • 找到两个有序数组的交集。
  3. 判断一个数组是否是另一个数组的子序列

    • 判断一个数组是否是另一个数组的子序列。
  4. 滑动窗口问题

    • 使用两个指针分别表示窗口的左右边界。

4.2、分离指针的核心思想

  1. 指针的初始化

    • 每个指针分别指向一个数组或链表的起始位置。
  2. 指针的移动规则

    • 根据问题的要求,决定每个指针的移动方向。
    • 通常,指针的移动方向是单向的(从左到右)。
  3. 终止条件

    • 当某个指针到达数组或链表的末尾时,算法结束。

4.3、分离指针的总结

  1. 适用场景

    • 合并两个有序数组或链表。
    • 查找两个数组的交集。
    • 判断一个数组是否是另一个数组的子序列。
  2. 核心思想

    • 使用两个指针分别遍历不同的数组或链表,通过比较指针指向的元素来解决问题。
  3. 时间复杂度

    • 通常为 (O(m + n)),其中 (m) 和 (n) 是两个数组或链表的长度。
  4. 空间复杂度

    • 通常为 (O(1)),只使用了常数级别的额外空间。

三、 双指针的时间复杂度

  • 双指针通常可以将时间复杂度从 (O(n^2)) 优化到 (O(n)),因为每个指针最多遍历数组或链表一次。

四、例题

  • 对撞指针
    力扣hot100两数之和
  • 快慢指针
    力扣hot100移动零
  • 滑动窗口
    力扣LCR长度最小的子数组
  • 分离指针
    力扣21、合并2个有序链表

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain 基础

一、LangChain 模块和体系 LangChain 是一个用于开发由大型语言模型(LLMs)驱动的应用程序的框架。 官方文档:https://python.langchain.com/docs/introduction/ LangChain 简化了LLM应用程序生命周期的每个阶段: 开发&#xf…

Parsing error: Unexpected token, expected “,“

今天在使用Trae AI 编程工具开发大文件切片上传功能,使用的是VUE3,TS技术栈,开发完成运行时,编译报错(Parsing error: Unexpected token, expected ","),让AI自行修复此问题多次后还是没有解决&a…

农用车一键启动工作原理

移动管家农用车一键启动的工作原理与普通汽车类似,主要依赖于无线射频识别技术(RFID)。以下是具体的工作步骤和原理: 智能钥匙识别: 车主携带智能钥匙靠近车辆时,钥匙通过发射射频信号与车辆进行交互。车辆…

Cursor从小白到专家

文章目录 1:简单开发一个贪吃蛇游戏规则设置提示词 cursor开发小工具开发整体步骤创建.cursorrules输入提示词composer模式chat模式 执行cursor accept all发布到线上进行分享 cursor开发一个浏览器插件创建.cursorrulescursor rules范例集工具 输入提示词执行curso…

MAC+PHY 的硬件连接

文章目录 以太网的 MAC 与 PHY简介硬件拓扑CPU集成MAC与PHYCPU集成MAC,PHY采用独立芯片CPU不集成MAC与PHY,MAC与PHY采用集成芯片 在 OSI 分层中的位置MACPHYMAC 与 PHY 数据交互参考 本文为笔者学习以太网对网上资料归纳整理所做的笔记,文末均…

仿函数 VS 函数指针实现回调

前提: 本博客对比 函数指针实现回调 和 仿函数 ,突出仿函数的优势。 目的: 一个类要能够灵活的调用两个函数,essfc 和 greaterfc,分别用于比较两个整数的大小: ①:lessfc:判断 x …

CH32V208蓝牙内部带运放32位RISC-V工业级微控制器

开发板 CH32V208CBU6立创格式的开发板上述链接可下载,官方文件进行了转换,使用前请仔细核对。 CH32V208CBU6原理图,上述图片为芯片部分。已进行DRC。 CH32V208CBU6 PCB三维图,上述图片为芯片部分。已进行DRC。 概述 CH32V208C…

整理和总结微信小程序的高频知识点

前言 近期萌生了一些想法,感觉可以做一个小程序作为产出。 但小程序做得比较少,因此边做边复习。整理和总结了一些高频知识点和大家一起分享。 一、模板和组件 1.1模板(Template) 优势 简单灵活:模板定义和使用都较…

1996-2023年各省公路里程数据(无缺失)

1996-2023年各省公路里程数据(无缺失) 1、时间:1996-2023年 2、来源:国家统计局、统计年鉴 3、指标:公路里程(万公里) 4、范围:31省 5、指标解释:公路里程指报告期末…

Wi-Fi NAN 架构(Wi-Fi Aware Specification v4.0,第2章:2.7~2.9)

1. NAN 介质访问控制层(MAC) NAN MAC负责通过参与 NAN同步信标帧(NAN Synchronization Beacon frame)的传输,获取并维护设备所在的NAN集群的同步。作为同步功能的一部分,NAN MAC运行 TSF 定时器。NAN MAC还…

《Python实战进阶》No26: CI/CD 流水线:GitHub Actions 与 Jenkins 集成

No26: CI/CD 流水线:GitHub Actions 与 Jenkins 集成 摘要 持续集成(CI)和持续部署(CD)是现代软件开发中不可或缺的实践,能够显著提升开发效率、减少错误并加速交付流程。本文将探讨如何利用 GitHub Actio…

HR人员和组织信息同步AD域服务器实战方法JAVA

HR人员和组织信息同步AD域服务器 前期准备AD域基础知识整理HR同步AD的逻辑代码结构配置文件设置启动类HR组织的BeanHR人员Bean获取HR人员和组织信息的类AD中处理组织和人员的类日志配置 POM.xml文件生成EXE文件服务器定时任务异常问题注意事项 前期准备 1、开发语言&#xff1…

修改服务器windows远程桌面默认端口号

修改服务器windows远程桌面默认端口号 在Windows服务器上修改远程桌面协议(RDP)的默认端口(3389)可以增强服务器的安全性,减少被恶意扫描和攻击的风险。以下是修改远程端口的详细步骤: 按 Win R 打开运行…

MuJoCo 仿真 Panda 机械臂!末端位置实时追踪 + 可视化(含缩放交互)

视频讲解: MuJoCo 仿真 Panda 机械臂!末端位置实时追踪 可视化(含缩放交互) 仓库地址:GitHub - LitchiCheng/mujoco-learning 本期介绍下,mujoco_py这个库很老了,最新的版本可以通过mujoco的p…

在Mac M1/M2芯片上完美安装DeepCTR库:避坑指南与实战验证

让推荐算法在Apple Silicon上全速运行 概述 作为推荐系统领域的最经常用的明星库,DeepCTR集成了CTR预估、多任务学习等前沿模型实现。但在Apple Silicon架构的Mac设备上,安装过程常因ARM架构适配、依赖库版本冲突等问题受阻。本文通过20次环境搭建实测…

spring boot 拦截器

1、创建ServletConfig配置类 package com.pn.config;import com.pn.filter.LoginFilter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.web.servlet.Fil…

论文阅读笔记:Denoising Diffusion Probabilistic Models (2)

接论文阅读笔记:Denoising Diffusion Probabilistic Models (1) 3、论文推理过程 扩散模型的流程如下图所示,可以看出 q ( x 0 , 1 , 2 ⋯ , T − 1 , T ) q(x^{0,1,2\cdots ,T-1, T}) q(x0,1,2⋯,T−1,T)为正向加噪音过程, p ( x 0 , 1 , …

【大模型基础_毛玉仁】3.5 Prompt相关应用

目录 3.5 相关应用3.5.1 基于大语言模型的Agent3.5.2 数据合成3.5.3 Text-to-SQL3.5.4 GPTs 3.5 相关应用 Prompt工程应用广泛,能提升大语言模型处理基础及复杂任务的能力,在构建Agent、数据合成、Text-to-SQL转换和设计个性化GPTs等方面不可或缺。 . …

深入理解 Linux ALSA 音频架构:从入门到驱动开发

文章目录 一、什么是 ALSA?二、ALSA 系统架构全景图核心组件详解:三、用户空间开发实战1. PCM 音频流操作流程2. 高级配置(asound.conf)四、内核驱动开发指南1. 驱动初始化模板2. DMA 缓冲区管理五、高级主题1. 插件系统原理2. 调试技巧3. 实时音频优化六、现代 ALSA 发展七…

探秘海螺 AI 视频与计算机视觉算法的奇妙融合

目录 开篇:数字浪潮下的视频新变革 蓝耘 Maas 平台与海螺 AI 视频:崭露头角的视频创作利器 图片生成视频:化静为动的魔法 文本生成视频:文字到画面的奇妙转换 注册与登录 计算机视觉算法:海螺 AI 视频的核心驱动力…