算法随想录第二天打卡|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

977.有序数组的平方

Python

#最后反转列表
class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:left,right=0,len(nums)-1new_nums=[]while left<=right:num1=nums[left]**2num2=nums[right]**2if num1<num2:new_nums.append(num2)right-=1else:new_nums.append(num1)left+=1new_nums.reverse()return new_nums#用deque
from collections import deque
class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:left,right=0,len(nums)-1new_nums=deque()while left<=right:num1=nums[left]**2num2=nums[right]**2if num1<num2:new_nums.appendleft(num2)right-=1else:new_nums.appendleft(num1)left+=1return list(new_nums)

 C++

#用reverse
class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {vector<int>new_nums;int left=0,right=nums.size()-1;while (left<=right){int num1=nums[left]*nums[left];int num2=nums[right]*nums[right];if (num1<num2){new_nums.push_back(num2);right--;}else{new_nums.push_back(num1);left++;}}reverse(new_nums.begin(), new_nums.end());return new_nums;}
};
#用deque
class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {deque<int>new_nums;int left=0,right=nums.size()-1;while (left<=right){int num1=nums[left]*nums[left];int num2=nums[right]*nums[right];if (num1<num2){new_nums.push_front(num2);right--;}else{new_nums.push_front(num1);left++;}}vector<int>myVector(new_nums.begin(),new_nums.end());return myVector;}
};

209.长度最小的子数组

Python

class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:slow=0total=0result=float("inf")for fast in range(len(nums)):total+=nums[fast]while total>=target:result=min(result,fast+1-slow)total-=nums[slow]slow+=1return result if result!=float("inf") else 0             

C++

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int slow=0,total=0;long long result=1e18;for (int fast=0;fast<nums.size();fast++){total+=nums[fast];while (total>=target){result=result<fast-slow+1?result:fast-slow+1;total-=nums[slow];slow++;}}return result==1e18?0:result;}
};

59.螺旋矩阵II

Python

class Solution:def generateMatrix(self, n: int) -> List[List[int]]:nums = [[0] * n for _ in range(n)]startx, starty = 0, 0               # 起始点loop, mid = n // 2, n // 2          # 迭代次数、n为奇数时,矩阵的中心点count = 1                           # 计数for offset in range(1, loop + 1) :      # 每循环一层偏移量加1,偏移量从1开始for i in range(starty, n - offset) :    # 从左至右,左闭右开nums[startx][i] = countcount += 1for i in range(startx, n - offset) :    # 从上至下nums[i][n - offset] = countcount += 1for i in range(n - offset, starty, -1) : # 从右至左nums[n - offset][i] = countcount += 1for i in range(n - offset, startx, -1) : # 从下至上nums[i][starty] = countcount += 1                startx += 1         # 更新起始点starty += 1if n % 2 != 0 :			# n为奇数时,填充中心点nums[mid][mid] = count return nums

总结

二刷了,这道题还是没有写出来,之前记的方法都忘记了,不过也是有了新的感悟。

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

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

相关文章

【Java探索之旅】super 子类构造 掌握

文章目录 &#x1f4d1;前言一、继承1.1 super1.2 子类的构造方法1.3 super与this的区别 &#x1f324;️全篇总结 &#x1f4d1;前言 继承作为面向对象编程中的重要概念&#xff0c;为我们提供了一种强大的代码复用和扩展机制。在Java中&#xff0c;通过继承可以实现子类对父类…

android 手机和平板如何适配

在Android开发中&#xff0c;为了确保应用既能在手机上良好运行&#xff0c;也能在平板等大屏幕设备上提供优质的用户体验&#xff0c;需要进行一系列的适配措施。以下是一些关键的适配策略&#xff1a; 1. 使用Density Independent Pixels (dp/dip) 应用应使用密度无关像素(…

钩子函数onMounted定义了太多访问MySQL的操作 导致数据库异常

先放几种后端遇到的异常&#xff0c;多数和数据库有关 pymysql.err.InternalError: Packet sequence number wrong - got 102 expected 1 127.0.0.1 - - [09/May/2024 17:49:37] "GET /monitorLastTenList HTTP/1.1" 500 AttributeError: NoneType object has no at…

大数据毕业设计Python+Django地铁客流量预测 时间序列 深度学习 机器学习 人工智能 Python爬虫 计算机毕业设计

​ 博主介绍&#xff1a;全网粉丝100W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路 西安工程大学本科毕业设计&#xff…

【编程向导】Docker-常用命令

常用命令 管理命令 管理命令说明builder管理构建config管理配置container管理容器context管理上下文engine管理引擎image管理镜像network管理网络node管理 Swarm 节点plugin管理插件secret管理 Docker secretsservice管理服务stack管理 Docker stacksswarm管理 Swarm 集群sys…

C++中的std::bind深入剖析

目录 1.概要 2.原理 3.源码分析 3.1._Binder分析 3.2._CALL_BINDER的实现 4.总结 1.概要 std::bind是C11 中的一个函数模板&#xff0c;用于创建一个可调用对象&#xff08;函数对象或者函数指针&#xff09;的绑定副本&#xff0c;其中一部分参数被固定为指定值&#xf…

KPL2024春季季后赛有感 | 辉煌永远是过去式

首先说明我是一个普通的观众&#xff08;不是专业的&#xff09;&#xff0c;不是谁的粉丝&#xff08;本人是慕强批&#xff0c;只是比较喜欢武汉estarpro&#xff09;。 在玩这个游戏之前&#xff0c;就听说过武汉estarPro很牛&#xff0c;只要他们上场&#xff0c;冠军就一定…

深入理解Spring中的@Autowired注解

在Spring框架中&#xff0c;Autowired注解是一个非常强大且常用的注解之一。它的主要作用是实现自动装配&#xff0c;即将一个Bean注入到另一个Bean中&#xff0c;从而简化了代码的编写。本文将深入探讨Autowired注解的原理、用法和一些注意事项。 1. Autowired注解的原理 Au…

RPA的安全性和可靠性

RPA&#xff08;Robotic Process Automation&#xff09;的安全性和可靠性是企业在引入这一技术时最为关注的两个方面。随着RPA技术的广泛应用&#xff0c;其在提高业务流程效率、降低成本方面的优势日益凸显&#xff0c;但与此同时&#xff0c;如何确保RPA系统的安全性和可靠性…

为什么 IP 地址通常以 192.168 开头?

在网络配置中&#xff0c;我们经常会遇到以 192.168 开头的 IP 地址&#xff0c;例如 192.168.0.1 或者 192.168.1.100。 这些地址通常用于局域网中&#xff0c;但为什么要选择以 192.168 开头呢&#xff1f; 本文将深入探讨这个问题&#xff0c;并解释其背后的原因和历史渊源…

Visual Studio编译QT工程

1、安装QT 2、安装VS 3、选择扩展和更新 4、搜索Qt Visual Studio Tools&#xff0c;安装或卸载 5、安装成功后工具栏显示Qt VS Tools 6、配置Qt VS Tools&#xff1a;打开Qt VS Tools的下拉菜单&#xff0c;选择Qt Versions 7、选择qt qmake.exe 的路径

Object.defineProperty 和 Proxy 使用例子

Object.defineProperty 是 JavaScript 中定义或修改对象属性的工具。它允许开发者更精确地控制属性的行为&#xff0c;如是否可枚举、是否可写、是否可配置等。 核心特性描述符 value: 属性的值&#xff0c;默认值为 undefined。writable: 布尔值&#xff0c;表示属性值是否可…

汽车行业芯片 车规级芯片 单车芯片( soc mcu)数量

链接&#xff1a;https://xueqiu.com/3000217281/272114755 10大车规级MCU芯片10大车规级MCU芯片 汽车芯片是什么&#xff1f; 汽车芯片即车规级芯片&#xff0c;标准要高于工业级和民用级芯片&#xff0c;仅次于军工级芯片。芯片大概有以下四种级别&#xff0c;分别是军工级…

ELK+kafka日志采集

ElasticSeach&#xff08;存储日志信息&#xff09; Logstash&#xff08;搬运工&#xff09; Kibana 连接ElasticSeach图形化界面查询日志 ELK采集日志的原理&#xff1a; 在每个服务器上安装LogstashLogstash需要配置固定读取某个日志文件Logstash将日志文件格式化为json的…

猿匹配,一款使用环信实现的一个开源聊天应用含服务器

前言 之前写了一篇Android开发集成聊天环信SDK3.x简单开始&#xff0c;然后最近得空开发了一款使用环信实现的实时聊天应用&#xff0c;包含简单的服务器端&#xff0c;并开源给大家&#xff0c;有兴趣的同学可以一起搞一下&#xff0c;详细介绍看下边吧 上代码 服务器&#…

六.音视频编辑-创建视频过渡-应用

引言 在上一篇博客中&#xff0c;我们已经介绍了创建视频过渡的实现方案&#xff0c;步骤非常繁琐&#xff0c;在生成AVMutableVideoCompositionInstruction和AVMutableVideoCompositionLayerInstruction的计算也十分复杂&#xff0c;但其实还有一个创建视频组合的捷径。不过我…

Github 学习使用随手记

1. GitHub 中使用仓库 在 GitHub 上&#xff0c;每个项目都由一个唯一的仓库来管理。仓库名是项目的标识&#xff0c;用于区分不同的项目。 仓库名由以下部分组成&#xff1a; 用户名或组织名&#xff1a;这是项目的创建者或所有者的用户名或组织名。项目名&#xff1a;这是…

Java基于Spring Boot框架的校园外卖服务系统设计与实现(附源码,说明文档)

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

typescript 命名空间、装饰器

1、命名空间 命名空间&#xff1a;在代码量较大的情况下&#xff0c;为了避免各种变量命名的冲突&#xff0c;可将相似功能的函数、类、接口等放置到命名空间内。同Java的包.Net的命名空间一样&#xff0c;typescript 的命名空间可以将代码包裹起来&#xff0c;只对外暴露需要在…

第二篇【AI与传奇开心果系列】Python的AI技术点库案例示例:详解AI工业应用算法原理

AI与传奇开心果系列博文 系列博文目录Python的AI技术点库案例示例系列 博文目录前言一、AI工业应用算法原理介绍二、机器学习在工业领域的应用算法示例代码三、深度学习算法在工业领域应用示例代码四、强化学习在工业领域应用示例代码五、自然语言处理在工业领域应用示例代码六…