代码随想录算法【Day2】

Day2

1.掌握滑动窗口法

2.模拟题,坚持循环不变量原则

209 长度最小的子数组

暴力法:

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {//暴力法int i, j; //i代表起始点,j代表终止点int sum; //子序列之和int length = 0; //子序列的长度int result = INT32_MAX; //最终结果for(i = 0; i < nums.size(); i++){sum = 0;for(j = i; j < nums.size(); j++){sum += nums[j];if (sum >= target){length = j - i + 1;if(length < result) result = length;break;}}}return result == INT32_MAX ? 0 : result;}
};

注意暴力法里面,如果找到符合条件的子序列了,直接break跳出j的循环

双指针法(滑动窗口法):

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {//双指针法int i = 0, j = 0; //i代表起始点,j代表终止点int sum = 0; //子序列之和int length = 0; //子序列的长度int result = INT32_MAX; //最终结果for(j = 0; j < nums.size(); j++){sum += nums[j];while(sum >= target){length = j - i + 1;if(length < result) result = length;sum -= nums[i];i ++;} }return result == INT32_MAX ? 0 : result;}
};

为什么时间复杂度是O(n)?

看每一个元素被访问的次数(这也是一个好的计算时间复杂度的方法),每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是 2 × n 也就是O(n)。

59.螺旋矩阵II

模拟题,难点在于边界值的判断,核心是坚持循环不变量原则,这里我们坚持左闭右开

class Solution {
public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> res(n, vector<int>(n,0));int startx = 0, starty = 0; //横着或竖着循环的起始位置int loop = n / 2; //循环的圈数,若n为奇数,需特殊判断int mid = n / 2;int count = 1; //矩阵赋值int offset = 1; //每条要循环的边的长度int i, j;while(loop--){i = startx;j = starty;
​//按边依次循环,用到了4个forfor( ; j < n - offset; j ++){res[i][j] = count++;}for( ; i < n - offset; i++){res[i][j] = count++;}for( ; j > starty; j--){res[i][j] = count++;}for( ; i > startx; i--){res[i][j] = count++;}startx ++;starty ++;offset ++;}//若n为奇数,需要单独给中间值赋值if(n % 2){res[mid][mid] = count;}return res;}
};

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

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

相关文章

android——屏幕适配

一、屏幕适配的重要性 在 Android 开发中&#xff0c;屏幕适配是非常关键的。因为 Android 设备具有各种各样的屏幕尺寸、分辨率和像素密度。如果没有进行良好的屏幕适配&#xff0c;应用可能会出现显示不完整、元素拉伸或压缩变形、字体大小不合适等问题&#xff0c;极大地影响…

oscp学习之路,Kioptix Level2靶场通关教程

oscp学习之路&#xff0c;Kioptix Level2靶场通关教程 靶场下载&#xff1a;Kioptrix Level 2.zip 链接: https://pan.baidu.com/s/1gxVRhrzLW1oI_MhcfWPn0w?pwd1111 提取码: 1111 搭建好靶场之后输入ip a看一下攻击机的IP。 确定好本机IP后&#xff0c;使用nmap扫描网段&…

第二十六周机器学习笔记:PINN求正反解求PDE文献阅读——正问题

第二十六周周报 摘要Abstract文献阅读《Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations》1. 引言2. 问题的设置3.偏微分方程的数据驱动解3.1 连续时间模型3.1.1 …

【安全编码】Web平台如何设计防止重放攻击

我们先来做一道关于防重放的题&#xff0c;答案在文末 防止重放攻击最有效的方法是&#xff08; &#xff09;。 A.对用户密码进行加密存储使用 B.使用一次一密的加密方式 C.强制用户经常修改用户密码 D.强制用户设置复杂度高的密码 如果这道题目自己拿不准&#xff0c;或者…

中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?

客户服务的个性化和标准化之间的矛盾一直是一个挑战。一方面&#xff0c;企业需要提供标准化的服务以保持运营效率和成本控制&#xff1b;另一方面&#xff0c;为了提升客户满意度和忠诚度&#xff0c;企业又必须满足客户的个性化需求。为此&#xff0c;中关村科金推出了智能客…

OPPO Android面试题及参考答案 (上)

性能优化方面,讲一下图片内存占用计算,以及如何避免持有不必要的引用。 在 Android 中,计算图片内存占用主要与图片的尺寸和像素格式有关。对于一张位图(Bitmap),其内存占用大小可以通过以下方式估算:内存占用 = 图片宽度 图片高度 每个像素占用字节数。例如,常见的 …

Agent 案例分析:金融场景中的智能体-蚂蚁金服案例(10/30)

Agent 案例分析&#xff1a;金融场景中的智能体 —蚂蚁金服案例 一、引言 在当今数字化时代&#xff0c;金融行业正经历着深刻的变革。随着人工智能技术的飞速发展&#xff0c;智能体&#xff08;Agent&#xff09;在金融场景中的应用越来越广泛。蚂蚁金服作为金融科技领域的…

ElasticSearch 的工作原理

理解 ElasticSearch 的工作原理需要从索引、搜索、以及其背后的核心机制几个方面来探讨。 1. ElasticSearch 是什么&#xff1f; ElasticSearch 是一个分布式搜索和分析引擎&#xff0c;适用于各种类型的数据&#xff0c;例如文本、数值、地理位置、结构化或非结构化数据。它基…

STM32F407 | Embedded IDE01 - vscode搭建Embedded IDE开发环境(支持JLINK、STLINK、DAPLINK)

导言 Embedded IDE官网:https://em-ide.com/docs/intro 我猜肯定有部分人使用SI Keil开发STM32项目&#xff0c;也有vscode Keil开发STM32程序。SI或vscode编写代码&#xff0c;然后切换Keil编译、下载、调试程序。有一段时间&#xff0c;我也是这么干的。但是&#xff0c;程…

光谱相机的工作原理

光谱相机的工作原理主要基于不同物质对不同波长光的吸收、反射和透射特性存在差异&#xff0c;以下是其具体工作过程&#xff1a; 一、光的收集 目标物体在光源照射下&#xff0c;其表面会对光产生吸收、反射和透射等相互作用。光谱相机的光学系统&#xff08;如透镜、反射镜…

ThinkPHP接入PayPal支付

ThinkPHP 5接入PayPal 支付&#xff0c;PayPal的流程是服务器请求Paypal的接口下单&#xff08;需要传订单id/支付成功的重定向地址/支付失败的重定向地址&#xff09;&#xff0c;接会返回一个支付地址&#xff0c;项目服务器把地址返给用户&#xff0c;用户打开链接登录Paypa…

stream流的toMap

假设有这么一个类: import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors;public class Student {private int id;private String name;public Student(int id, String name) {this.id id;…

html + css 淘宝网实战

之前有小伙伴说&#xff0c;淘宝那么牛逼你会写代码&#xff0c;能帮我做一个一样的淘宝网站吗&#xff0c;好呀&#xff0c;看我接下来如何给你做一个淘宝首页。hahh,开个玩笑。。。学习而已。 在进行html css编写之前 先了解下网页的组成和网页元素的尺寸吧 1.网页的组成 …

神经网络、深度学习、卷积神经网络

好的&#xff01;我会尽量详细且易懂地为你解释这些概念&#xff0c;并在最后用简单直白的语言总结一下。 1. 神经网络思想 神经网络是灵感来自于生物大脑神经元的工作原理&#xff0c;是一种模仿人类大脑处理信息的方式来设计的数学模型。我们的大脑由亿万个神经元组成&…

设计模式01:创建型设计模式之单例、简单工厂的使用情景及其基础Demo

一、单例模式 1.情景 连接字符串管理 2.好处 代码简洁&#xff1a;可全局访问连接字符串。性能优化&#xff1a;一个程序一个连接实例&#xff0c;避免反复创建对象&#xff08;连接&#xff09;和销毁对象&#xff08;连接&#xff09;。线程安全&#xff1a;连接对象不会…

【不太正常的题】LeetCode.232:用栈的函数接口实现队列

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;初阶数据结构刷题 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f697; 1.问题描述&#xff1a; 题目中说了只能使用两个栈实现队列&#xff0c;并且只能使用…

Linux搭建text-generation-webui框架,安装通义千问大模型,开放对外api,voxta测试对话图文教程

目录 text-generation-webui部分 开放对外API 通义千问部分 远程API对话测试部分 text-generation-webui部分 本来不想发这个文章的&#xff0c;但是自己部署的时候看了挺多人的帖子&#xff0c;很多发的不全面&#xff0c;要么就是跟着他们流程走有些小问题啥的&#xff…

QT程序发布后,mysql在其它电脑设备无法连接数据库

QT程序发布后&#xff0c;mysql在其它电脑设备无法连接数据库 D:\mysql-5.7.24-winx64\lib, mysql-5.7.24-winx64是一个压缩包&#xff0c;用于启动mysql服务&#xff0c;创建数据库 压缩包 解决方法&#xff1a; 拷贝库到exe的相同目录&#xff0c;libmysql.dll,libmysql.li…

ElasticSearch 的核心功能

要深入理解 ElasticSearch 的核心功能&#xff0c;需要全面掌握其 全文搜索、分析、聚合 和 索引生命周期管理&#xff08;ILM&#xff09; 的设计原理和实际应用。 1. 全文搜索 ElasticSearch 的全文搜索是其核心功能之一&#xff0c;依赖于倒排索引和强大的分词、相关性评分…

在Nginx部署Web应用,如何保障后端API的安全

1. 使用HTTPS和http2.0 参考&#xff1a;Nginx配置HTTP2.0_nginx 支持 2.0-CSDN博客 2. 设置严格的CORS策略 通过add_header指令设置CORS头。 只允许来自https://frontend.yourdomain.com的请求访问API location /api/ {if ($http_origin ~* (https://frontend\.yourdomai…