【随想录day2】LeetCode209长度最小的子数组 | LeetCode59螺旋矩阵

news/2024/9/18 12:14:05/文章来源:https://www.cnblogs.com/jchen2022/p/18411662

LeetCode209长度最小的子数组

1、题目:

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0
示例:

输入:s = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。
提示:

1 <= target <= 10^9
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^5

2、代码

2.1 Python版

class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:sum = 0i = 0j = 0subl = 0result = float('inf')while j < len(nums):sum += nums[j]while sum >= target:subl = j - i + 1result = min(result, subl)sum -= nums[i]i += 1j += 1return result if result != float('inf') else 0

2.2 C++版

3、总结

1、在使用双指针法的时候,j作为双指针的右下标来遍历整个列表
2、在j老实前进的过程中,i作为左下标的收紧区间来找到最小长度的子串。中间时时更新,找到一个小了一点的长度值就喜新厌旧地丢弃原来的长度。而它的初始化长度是老实巴交的float('inf'),一个注定被抛弃的存在。因为如果他不被抛弃,那就意味着我们遍历整个数组的努力是徒劳。而即便他幸运地,或者不幸地没有被抛弃,他也终究不会被返回。我们毫无发现时,函数将返回0,略带失望。
3、双指针法就是这样的,有时候我觉得他不如暴力法。在暴力法中,作为子集两端的下标i和j相伴走到最后,哪怕是徒劳。返回0的失望与他们无关。我喜欢后一个故事,但是效率让我们选择前者。

LeetCode

1、题目:

给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:
输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]

2、代码

2.1 Python版

class Solution:def generateMatrix(self, n: int) -> List[List[int]]:startx, starty = 0, 0loop, mid = n // 2, n//2num = 1matrix = [[0] * n for _ in range(n)]    #range取的是左闭右开区间for offset in range(1, loop + 1):for i in range(starty, n - offset):matrix[startx][i] =  numnum += 1for i in range(startx, n - offset):matrix[i][n - offset] = numnum += 1for i in range(n - offset, starty, -1):matrix[n - offset][i] = numnum +=1for i in range(n - offset, startx, -1):matrix[i][starty] = numnum += 1startx += 1starty += 1if n % 2 != 0:matrix[mid][mid] = numreturn matrix

2.2 C++版

3、总结

1、循环不变量,重复的相遇发生在每一个转角,我希望邂逅你,而这也是事实。
2、晕了,待补

参考资料

https://programmercarl.com/0209.长度最小的子数组.html#算法公开课
https://programmercarl.com/0059.螺旋矩阵II.html#其他语言版本

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

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

相关文章

第八篇:权限管理体系

Linux12位权限管理体系权限管理概述 Linux通过rwx3种权限控制系统与保护系统,组成9位权限 Linux权限体系中还有3位特殊权限,组合起来就是12位权限体系rwx三种权限权限 含义r read 是否可读w write 是否可写x execute 是否可执行(一般是命令、脚本)用户三种关系 Linux下面…

学习日历 -2024/9/13

从今天开始放中秋假期,5天的时间,实在是太棒了 建民说下周四要补测,还好不是周五,周五周六我要出去 今天学习了数据结构二叉树的一些基本知识 数据结构(树)度:每一个节点的字节点数量 树高:树的总层数 根结点:最顶层的节点 左子节点:左下方的节点 右子节点:右下方的节点 根结点…

04华为VRP系统入门

04华为VRP系统入门VRP系统基本介绍通用路由平台VRP(Versatile Routing Platform)是 华为公司数据通信产品的通用操作系统平台 。 是华为公司从低端到核心的全系列路由器、以太网交换机、业务网关等产品的软件核心引擎。+ ​​华为系设备基础管理文件和存储系统文件系统文件系…

在arm64 架构上安装dotnet 8.0.8 LTS

树莓派 4B 是arm64的。 在arm64上面运行apt list dotnet是不会出来可用的dotnet的,即使apt update多次也一样。 好在dotnet 本身是支持arm/arm64 架构的,只是安装的时候不能使用apt罢了。 那么久使用scripts来进行安装好了。 wget 下载到本地之后,先 chmod +x, 就我自己的…

从0开始计算机体系结构的学习(一):FGPA预备知识与Vivado环境搭建

引入与预备知识 什么是FPGA? FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种集成电路(IC),其硬件功能可以通过用户在现场编程来定义。与传统的ASIC(专用集成电路)不同,FPGA在制造完成后仍然可以根据需求进行重新配置。因此,它们被广泛应用于需要灵活性…

WordPress加载流程的解读分析

index.php ```php <?php /** 这个文件只用来加载 /wp-blog-header.php** @package WordPindex.php ```php <?php /* * 这个文件只用来加载 /wp-blog-header.php * * @package WordPress / /* * 声明一个全局变量,用来判断是否加载主题 * * @var bool / define(WP_USE_…

C++ 虚函数表解析

一、何为多态 多态(polymorphism)指为不同数据类型的实体提供统一的接口,或使用单一的符号来表示多个不同的类型。比如我们熟悉的函数重载、模板技术,都属于多态。无论是模板还是函数重载,都是静态绑定的。也就是说,究竟该调用哪个重载函数或者说调用哪个模板类的实例化,…

8-回溯算法

参考代码随想录题目分类大纲如下:一、回溯算法理论基础 什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯法其实就是暴力查找,并不是什么高效的算法 回溯法的效率虽然回溯法很难,很不好理解,但是回溯法并不是…

九月

arc131 C考虑奇数情况,只有一个时先手必胜,设当前异或和为 \(S\),必输的情况是 \(\forall S \oplus a_i \in a\),这些数是一一对应的,但一共有奇数,此时先手必胜。偶数是,若第一回合无法结束游戏则变为后手,同上。 E若一个点所有边颜色相同,包含该点的环便不可能三边颜…

微信小程序开发系列10----页面配置--事件冒泡和阻止

下图点击里面,外面的事件也触发 场景:广告 点击先看广告,之后跳转到功能页面 会冒泡的事件源码获取方式(免费):(1)登录-注册:http://resources.kittytiger.cn/(2)签到获取积分(3)搜索:8-wxmleventMp事件冒泡和阻止

椭圆的第二定义

平面内到定点 \(F(c,0)\)的距离和到定直线 :\(\displaystyle l:x=\frac{a^{2}}{c}\)( 点\(F\)不在\(l\)上)的距离之比为常数\(\displaystyle \frac{a}{c}\)(即离心率\(e\),\(0<e<1\))的点的轨迹是椭圆。(即点\(P\)轨迹) 其中定点\(F\)为椭圆的焦点,定直线\(l\)称…