【代码训练营Day02】数组part2

article/2025/8/21 17:46:53

文章目录

  • 长度最小的子数组
  • 螺旋矩阵II
  • 数组总结

长度最小的子数组

题目链接:209. 长度最小的子数组

滑动窗口法的解题思路:

  • 首先初始化双指针,都指向数组头部
  • end指针依次向后滑,每向后滑一项就加一项,直到满足要求达到的大小为止
  • end指针不动,head指针向后滑,每向后滑一项就减一项,这也就是在尝试缩小窗口大小,直到不满足大小为止
    • 更新窗口的最小长度
  • 如此循环往复直到end指针未知异常(超出数组范围)
  • 最后返回窗口的最小长度即可
  • 这里有一个容易遗漏的情况就是,数组的所有元素加起来都没达到要求,这个时候就要返回0
class Solution {public int minSubArrayLen(int target, int[] nums) {int head = 0;int total = 0;int minLength = Integer.MAX_VALUE;for(int end = 0; end < nums.length; end++) {total += nums[end];if(total < target) {if (head == 0 && end == nums.length - 1) return 0;continue;}while (total - nums[head] >= target) total -= nums[head++];int currentLength = end - head + 1;if(currentLength < minLength) minLength = currentLength;}return minLength;}
}

螺旋矩阵II

题目链接: 59. 螺旋矩阵 II

本题首先观察题目特点:

  • 填充路线都是在一个方向上进行到底才转向
  • 往哪转?可以从向量的角度来看,如下图
    在这里插入图片描述
  • 这张图中通过单位向量的方式,描述了每次转向的方向(同时也代表了每次移动的坐标变化量)
  • 我们可以总结出每次转向都是(x,y) --> (y,-x)

接下来开始编码:

class Solution {public int[][] generateMatrix(int n) {int[][] result = new int[n][n];int x = 0;int y = 0;int direct_x = 0;int direct_y = 1;for (int i = 1; i <= n * n; i++) {result[x][y] = i;int try_x = x + direct_x;int try_y = y + direct_y ;if (try_x > n - 1 || try_y > n - 1 || try_x < 0 || try_y < 0 || result[try_x][try_y] != 0) {int temp = direct_y;direct_y = -direct_x;direct_x = temp;}x += direct_x;y += direct_y;}return result;}
}

转向的边界判断可以使用取模的方式简化

数组总结

数组的相关算法题,比较常用的就是四种方法:

  • 二分法
  • 双指针法: 两个指针的动向比较灵活,但不能违背指针的前后次序
  • 滑动窗口法: 可以理解为双指针法的变种,两个指针具有单调性,均往一个方向走,区间的变化是一种收缩,满足元素剔除的思想
  • 行为模拟: 一定要弄清楚题目的特点,涉及到多维数组,可以从数学的角度来看待,通过建系的方法,把行为转化为坐标的变化从而进行解题

http://www.hkcw.cn/article/KIZbEkXGEb.shtml

相关文章

千年后中国人又在举国之力挖运河 新运河时代来临

千年后中国人又在举国之力挖运河 新运河时代来临!近日,浙江《关于高水平建设“航运浙江”的实施意见》正式实施,明确提出“谋划推进浙赣运河”。这一消息再次引起热议。作为浙赣粤运河的一部分,浙赣运河途经浙江杭州、衢州和江西上饶、鹰潭、南昌等城市,规划全长约760公里…

网关Gateway

目录 Gateway作用 Gateway使用 Gateway作用 在微服务项目中&#xff0c;没有引入网关时&#xff0c;项目架构如下&#xff1a; 引入网关后&#xff0c;架构如下&#xff1a; 引入网关后&#xff0c;有如下优势&#xff1a; 1、客户端请求经过网关向后台统一分发请求&#xff0c…

Python打卡训练营-Day15-复习日

浙大疏锦行 作业&#xff1a; 尝试找到一个kaggle或者其他地方的结构化数据集&#xff0c;用之前的内容完成一个全新的项目&#xff0c;这样你也是独立完成了一个专属于自己的项目。 要求&#xff1a; 有数据地址的提供数据地址&#xff0c;没有地址的上传网盘贴出地址即可。尽…

使用MFC 写dap上位机在线烧写FLASH

1.使用BUS Hound 抓取KEIL5 正常烧写的通讯包协议 2.结束DAP 源码分析每条数据&#xff0c;主要通讯靠05 和06 3.动态加载FLM烧写算法. 最终效果

Orcad 修复Pin Name重复问题

Duplicate Pin Name “VDD” found on Package 问题描述 1、Orcad创建网表时报错,错误,描述为Pin Name重复(在Orcad中是不允许非Power的pin type的Pin Name相同的) #26 ERROR(ORCAP-36041): Duplicate Pin Name “VDD” found on Package 处理方式 修

以军称拦截也门胡塞武装发射的一枚导弹

以色列国防军当地时间29日发表声明称,以空军当天拦截了也门胡塞武装发射的一枚导弹,包括特拉维夫在内的部分以色列中部地区当天响起防空警报。有报道称,耶路撒冷传出爆炸声。以色列急救组织表示,暂时没有接到关于此次导弹袭击的人员伤亡报告。△本古里安国际机场(资料图)…

从微积分到集合论(1630-1910)(历史简介)——第3章——数学分析的出现及其基础性进展(1780-1880)(I.Grattan-Guinness)

第 3 章 数学分析的出现及其基础性进展 (The Emergence of Mathematical Analysis and its Foundational Progress,1780-1880) Grattan-Guinness 目录 3.1 数学分析及其与代数和几何的关系(Mathematical analysis and its relationship to algebra and geometry) 3.2 …

2-向量可视化

确定适用于向量的绘图类型 任务一 plot(Year,Aus_Can); 任务二 area(Year,Aus Can) 结果 任务三 stem(Year,Aus_Can) 自定义绘图属性 %任务一 plot(Year,Australia,"-ok") 结果 表示&#xff1a;&#xff08;按要求完成任务&#xff09; 用 黑色实线 连接数据点…

语音识别中的XML语法应用范例

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;XML是一种标记语言&#xff0c;用于数据传输和存储&#xff0c;而非显示。在语音识别中&#xff0c;它负责定义和结构化语音识别语法&#xff0c;通过元素如词汇、发音规则和语法限制等&#xff0c;帮助计算机理…

B站bilibili视频转文字字幕下载方法

本文将讲述介绍一种使用本地工具如何快速的下载B站的字幕为本地文本文件的方法。 通常获取B站字幕需要在浏览器中安装第三方插件&#xff0c;通过插件获取字幕。随着大模型&#xff0c;生成式AI&#xff0c;ChatGPT的应用&#xff0c;B站也提供了AI小助手对视频的内容进行总结…

计算机视觉图像处理基础系列:滤波、边缘检测与形态学操作

计算机视觉图像处理基础系列:滤波、边缘检测与形态学操作 一、前言二、滤波:图像的精细化处理​2.1 滤波基础概念​2.1.1 滤波的本质​2.1.2 图像噪声来源与类型​2.2 线性滤波​2.2.1 均值滤波​2.2.2 高斯滤波​2.3 非线性滤波​2.3.1 中值滤波​三、边缘检测:图像轮廓的精…

Kimi-Audio音频大模型介绍、本地部署与开发

目录 一、模型介绍 二、模型部署 1、创建工作空间 2、下载模型 3、下载依赖 4、下载模型库 5、下载glm4_tokenizer 6、代码编程修改 4 月 26 日&#xff0c;Moonshot AI正式宣布推出Kimi-Audio&#xff0c;一款全新的开源音频基础模型&#xff0c;旨在推动音频理解、生…

YOLO11n动态库部署实战:Windows11 + C++ + OpenCV + DDL完整封装流程详解(保姆级教程)

文章目录 前言一、Windows11CPU算法环境搭建1. 安装pycharm2. 安装python 3.8.103. 安装pytorch 1.13.04. 安装mingw64 14.2.05. 安装cmake 3.31.66. 安装 Visual Studio 2022 二、运行YOLO模型并转换为ONNX文件1. 下载yolo11源码和 ultralytics-8.3.31-py3-none-any.whl 文件2…

AI视频自动生成本地部署,完美实现“剪映”图文成片功能

项目说明 本项目仅适用于学习和研究&#xff0c;不得用于商业使用。所有推荐开源项目本人都亲测可运行。如有侵权&#xff0c;请通知删除。 项目简介 只需提供一个视频 主题 或 关键词 &#xff0c;就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐&#xff0c;然…

计算机视觉常用数据集Cityscapes的介绍、下载、转为YOLO格式进行训练

我在寻找Cityscapes数据集的时候花了一番功夫&#xff0c;因为官网下载需要用公司或学校邮箱邮箱注册账号&#xff0c;等待审核通过后才能进行下载数据集。并且一开始我也并不了解Cityscapes的格式和内容是什么样的&#xff0c;现在我弄明白后写下这篇文章&#xff0c;用于记录…

抖音采集工具Gui版:高效无水印下载抖音视频的神器

抖音采集工具Gui版是一款由52pojie论坛的biqiang大神自制的功能强大的采集工具。 它专为抖音视频下载设计&#xff0c;能够帮助用户轻松获取抖音平台上的各种视频资源&#xff0c;支持批量下载&#xff0c;极大地提升了下载效率。 全面的资源采集 支持采集抖音作品、Webp动态封…

YOLOv11实时目标检测 | 摄像头视频图片文件检测

在上篇文章中YOLO11环境部署 || 从检测到训练https://blog.csdn.net/2301_79442295/article/details/145414103#comments_36164492&#xff0c;我们详细探讨了YOLO11的部署以及推理训练&#xff0c;但是评论区的观众老爷就说了&#xff1a;“博主博主&#xff0c;你这个只能推理…

【计算机视觉】生成对抗网络(GAN)在图像生成中的应用

生成对抗网络(GAN)在图像生成中的应用 一、前言1.1 图像生成的重要性与挑战​1.2 GAN 的发展历程​二、生成对抗网络(GAN)基础​2.1 GAN 的基本原理​2.1.1 生成器与判别器​2.1.2 对抗训练过程​2.2 GAN 的数学原理​2.3 GAN 的代码实现(以 PyTorch 为例)​2.4 GAN 训练…

Coze实战:基于数据库的视频混剪工作流搭建(喂饭级教程)

作者&#xff1a;后端小肥肠 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; Coze一键生成打字机效果书单视频&#xff08;保姆级工作流拆解&#xff09;-CSDN博客 Coze实战:《如果书籍会说话》保姆级教程&#xff…

自动语音识别(ASR)技术详解

语音识别&#xff08;Automatic Speech Recognition, ASR&#xff09;是人工智能和自然语言处理领域的重要技术&#xff0c;旨在将人类的语音信号转换为对应的文本。近年来&#xff0c;深度学习的突破推动语音识别系统从实验室走入日常生活&#xff0c;为智能助手、实时翻译、医…