Day2 LeetCode 209. 长度最小的子数组 c&python

基于大模型的JMeter日志智能分析服务化实践 在软件性能测试领域,日志分析是定位系统瓶颈、评估稳定性的关键环节。传统基于规则或正则表达式的分析方法,在面对格式多变、上下文关联复杂的海量日志时,往往效率低下且难以深入。大语言模型(LLM)凭借其强大的自然语言理解与推理能力,为这一挑战提供了新的解决方案。其技术价值在于能够自动化地从非结构化文本中提取语义信息、关联分散的上下文,并生成可操作的根因分析与优化建议,从而将工程师从繁琐的日志筛查中解放出来,显著提升问题诊断的深度与效率。这一技术可广泛应用于自动化测试报告生成、实时监控预警、脚本调试辅助等工程实践场 阅读详情

209题目:

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度如果不存在符合条件的子数组,返回 0 。

示例 1:

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

示例 2:

输入:target = 4, nums = [1,4,4]
输出:1

示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

使用滑动窗口的思想,一个是快指针j率先寻找符合大于等于traget的元素数目,然后用慢指针向后移一位,观察少了一个元素是否还依然和大于target元素

C语言

define min(a,b) ((a) < (b) ? (a) : (b))
int minSubArrayLen(int target, int* nums, int numsSize)
{
    int i=0;
    int j=0;
    int result=INT_MAX;
    int sum=0;
    for(j=0;j<numsSize;j++)
    {
        sum=sum+nums[j];
        while (sum>=target)
        {
            int lenth=j-i+1;
            result=min(lenth,result);
            sum=sum-nums[i];
            i++;
        }
    }
    return result!=INT_MAX?result:0;
}

python 语言

class Solution(object):
    def minSubArrayLen(self, target, nums):
        """
        :type target: int
        :type nums: List[int]
        :rtype: int
        """
        i=0
        j=0
        sum=0
        result=float('inf')
        for j in range(len(nums)):
            sum=sum+nums[j]
            while sum>=target:
                lenth=j-i+1
                result=min(lenth,result)
                sum=sum-nums[i]
                i+=1
        return result if result != float('inf') else 0

注意事项:c语言没有min,max函数,需要自己定义,可以使用三目条件操作符,格式为exp1?exp2:exp3.意思是exp1成立则输出exp2,exp1不成立则输出exp3。C 语言最大int值可以定位为INT_MAX.

python 语言中,最大正无穷int值可以定义为,float(‘inf’).

Windows下RISC-V开发环境搭建:xpack-riscv-none-elf-gcc安装配置全攻略 本文详细介绍了在Windows平台下搭建RISC-V开发环境的完整流程,重点讲解xpack-riscv-none-elf-gcc工具链的安装配置方法。从环境变量设置到VSCode集成开发环境搭建,涵盖汇编程序和C程序开发实践,为开发者提供一站式解决方案,助力快速掌握RISC-V架构开发技能。 阅读详情

相关推荐

系统架构设计师重难点知识脑图

大家都知道现在的软考自从变成机考后,越来越难了,教程上的内容不仅全还细,几乎任何内容都有可能考,出题老师主打一个出其不意,比如2024年5月考试,连UML时序图的片段都考,这。软件工程、系统架构基础知识、系统质量属性与架构评估、软件架构的演化和维护、信息系统架构设计、层次式架构设计、云原生架构设计、面向服务架构设计、安全架构设计、大数据架构设计等。所以对于教程上的任何知识点,都需要去记忆。因此我在这里制作了一个脑图,将所有知识点集中在一个脑图中,通过首词组句法,记忆背诵,通过一个个的展开节点,加强记忆。

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 1040

力扣(合并区间)

给定一组可能重叠或相邻的整数区间,合并所有重叠或端点相接的区间,返回不重叠的最小区间列表。例如输入 [[1,3],[2,6],[8,10],[15,18]],输出 [[1,6],[8,10],[15,18]]。核心是先按左端点升序排序,再单次线性扫描完成合并,避免暴力两两比较。

weixin_52811458的博客 300

【机械臂视觉抓取从理论到实战】

首先声明一下,此项目是参考B站哈萨克斯坦UP的【机械臂视觉抓取从理论到实战】 此内容为他研究生生涯的阶段性成果展示和技术分享,所有数据和代码均开源。所以鹏鹏我特此来复现一下,我采用的硬件与之有所不同,UP主使用UR5,我实验室采用的是UR3,下面列出相关材料 UR3CB3.12:https://www.universal-robots.cn/cb3/ 【UR3系统升级到CB3.12附带URcap1.05】硬件支持代码支持 jacquard数据集:https://pan.baidu.com/s/1524HrV

vor234的博客 5095

LeetCode 155. 最小栈|Python 解法详解

这道题的关键是:使用主栈保存数据,辅助栈在每一层同步保存“截至当前位置的最小值”。理解这一点后,再结合边界条件检查,代码就能保持清晰且稳定。

a1250467048的博客 239

LeetCode 1. 两数之和 | 从暴力枚举到哈希表最优解 + 空间换时间思想全复盘

文章摘要 题目要求在数组中找到两数之和等于目标值的下标。核心思路是优化查找效率: 暴力法:双重循环枚举所有数对,时间复杂度O(n²),效率低但易实现。 哈希表优化:利用哈希表O(1)查找特性,遍历时存储已访问元素,每次计算差值并查询,时间复杂度降至O(n)。关键细节是先查后存,避免自匹配。 代码实现:哈希表法通过一次遍历完成,空间换时间,边界处理需注意空数组和不足两元素的情况。 常见错误:内层循环起始点、哈希表键值设计、立即返回结果等易错点需警惕。 面试要点:优先选择哈希表解法,解释与暴力法的差异,强调时间

yc2284238579的博客 261

LeetCode //MySQL - 1204. Last Person to Fit in the Bus

This SQL query solves the problem of finding the last person who can board a bus without exceeding the 1000 kg weight limit. The solution involves: Calculating a running total of weights ordered by boarding turn using a window function Filtering to only in

Made in Code 373

leetcode】153. 寻找旋转排序数组中的最小值js

本文介绍了在旋转排序数组中寻找最小值的二分查找算法。通过比较中间元素与数组末尾元素,可以确定最小值所在区间:若中间值大于末尾值,则最小值在右侧;否则在左侧或当前位置。文章提供了两种实现方式,第一种通过样例总结返回nums[l],第二种采用更标准的二分写法,确保循环结束时left==right。两种方法时间复杂度均为O(logn),适用于解决LeetCode相关题目。关键点在于利用旋转数组的特性缩小搜索范围。

2402_83244812的博客 153

LeetCode //C - 1203. Sort Items by Groups Respecting Dependencies

This problem involves sorting items with group constraints and dependency relations. The key steps are: Assign unique groups to items with no group (-1) Build dependency graphs for both items and groups Perform topological sorting on both graphs If both so

Made in Code 381

10.LeetCode算法习题讲解--滑动窗口--最大连续为一的个数

利用滑动窗口解决最大连续1的个数

Jammy_1的博客 223

LeetCode hot100——最大子数组

给你一个整数数组nums,请你找出一个具有最大和的连续子数组子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。

weixin_42927227的博客 213

LeetCode hot100——合并两个有序链表

将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。[][0]l2

weixin_42927227的博客 55

栈和队列专题(三):LeetCode 622. 设计循环队列|数组环形复用 + front/rear 边界详解

本文详细讲解了循环队列的设计与实现,重点分析了如何利用数组实现环形结构以避免空间浪费。文章首先通过示例说明普通数组队列的"假溢出"问题,然后提出循环队列的解决方案。核心内容包括:1. 采用牺牲一个存储位置的方案区分队列空满状态;2. 明确front和rear指针的语义(front指向队首元素,rear指向下一个可插入位置);3. 使用取模运算实现下标的循环移动。文章完整实现了LeetCode 622题要求的全部接口,并分析了各种边界情况,特别是队尾元素的获取方法。最后对比了数组实现与链式

Luminousone的博客 473

LeetCode 3597.分割字符串

时间复杂度:O(n) 或 O(n∣Σ∣),其中 n 是 s 的长度,∣Σ∣=26 是字符集合的大小。空间复杂度:O(n) 或 O(n∣Σ∣)。只要当前段是唯一的,就将其加入段列表,标记为已经出现过,并从下一个下标开始构建新的段。因此,最终输出为 [“a”, “b”, “bc”, “c”, “cc”, “d”]。输出: [“a”,“b”,“bc”,“c”,“cc”,“d”]因此,最终输出为 [“a”, “aa”]。输入: s = “abbccccd”输入: s = “aaaa”输出: [“a”,“aa”]

tus00000的博客 224

LeetCode 152. 乘积最大子数组

该文章介绍了如何找到数组中乘积最大的非空连续子数组。关键思路是同时维护以当前元素结尾的最大乘积(fmax)和最小乘积(fmin),因为负数可能使最小值变为最大值。文章指出了原始代码的问题:在更新fmin时错误使用了已更新的fmax值。正确的做法是先暂存旧的fmax值,再分别计算新的fmax和fmin。给出了正确的状态转移方程和实现代码,并强调了需要考虑当前元素单独作为子数组的情况。最后提供了多个测试用例和复杂度分析(O(n)时间,O(1)空间)。核心思想是利用动态规划处理乘积中的负数翻转问题。

zander258的博客 59

LeetCode 1143:最长公共子序列——Java 二维动态规划详解

本文介绍 LeetCode 1143“最长公共子序列”的二维动态规划解法。通过定义 `dp[i][j]` 表示两个字符串相应前缀的最长公共子序列长度,分别推导当前字符相同与不同时的状态转移。文章结合 `"abcde"` 和 `"ace"` 完整填写 DP 表,并讲解数组初始化、下标映射、遍历顺序、Java 代码、复杂度及常见错误。

weixin_51228134的博客 325

LeetCode 28. 找出字符串中第一个匹配项的下标(暴力匹配 + KMP 算法详解)

本文介绍了LeetCode 28题"找出字符串中第一个匹配项的下标"的两种解法:暴力匹配和KMP算法。暴力匹配通过逐个字符比较实现,时间复杂度O(m×n);KMP算法利用next数组跳过不必要匹配,时间复杂度O(m+n)。文章详细解释了KMP的核心思想,包括next数组的定义和构建过程,并提供了Python和Java的代码实现。两种方法各具特点:暴力匹配简单直观,KMP更高效但实现复杂,适合处理长字符串匹配问题。

2603_95532426的博客 231

leetcode】33.搜索旋转排序数组js

本文介绍了在旋转排序数组中查找目标值的二分搜索算法。通过分析四种可能情况(mid值和目标值分别位于左右两段的不同组合),将问题转化为常规二分搜索或特殊指针移动。当mid值和目标值位于同一段时按常规二分处理;位于不同段时根据相对位置调整搜索方向。算法时间复杂度为O(log n),适用于部分有序数组的快速查找。文章附有JavaScript实现代码和情况分类表格,清晰展示了处理逻辑。

2402_83244812的博客 313

LeetCode 34:在排序数组中查找元素的第一个和最后一个位置(二分查找) —— 题解

二分查找经典题目——在排序数组中查找元素的第一个和最后一个位置

2601_96587588的博客 753

LeetCode 142. 环形链表 II|Python 解法详解

这道题的关键是:快慢指针相遇后,根据距离关系,从头节点和相遇点各放一个同速指针,它们再次相遇的位置就是环入口。理解这一点后,再结合边界条件检查,代码就能保持清晰且稳定。

a1250467048的博客 206

LeetCode hot 100 —41. 缺失的第一个正数

普通数组-5-困难

Canmido的博客 226

关于字符串【力扣151.反转字符串中的单词的思考】

【摘要】本文介绍了字符串反转问题的解决方案。通过三个关键步骤实现:首先去除多余空格,然后整体反转字符串,最后逐个反转单词。方法强调函数封装思想,将不同功能模块化处理。注意事项指出需特别关注函数封装在代码复用和维护中的重要性,这种分步处理方法能有效提高代码可读性和执行效率。

wasb666的博客 494

LeetCode 198. 打家劫舍

这篇文章详细讲解了如何解决房屋偷窃问题,即在不相邻偷窃条件下获取最大金额。初始思路是暴力DFS枚举所有可能,但会超时。然后引入记忆化搜索优化重复子问题,定义了状态转移方程dfs(i)=max(nums[i]+dfs(i+2),dfs(i+1))。进一步转化为自底向上的动态规划,通过从右向左填表计算,将空间复杂度优化到O(n)。最终版本使用两个变量代替数组,将空间复杂度降至O(1)。文章还列举了常见错误点,并分析了各方法的时间复杂度均为O(n),强调明确递归函数定义是解题关键。

zander258的博客 301

labview_对停车场收费的智能化管理

labview_对停车场收费的智能化管理

小天才电话手表通用刷机工具

【支持机型】降级和ROOT:Z2 Z3 Z5A/PRO/Q Z6(不含巅峰版、Z6A)Z7以及更高版本手表请不要尝试刷机,否则只有送售后一条路,没有救砖工具如果您自己有手表其它型号类似链接中的“刷机包”,并且有root的手段,具有一定专业知识,也可以尝试其它机型,但由于其它机型配置限制,一般刷成功意义也不大【操作原理】将手表降级,利用低版本小天才手表没有太严格的刷机限制,将手表进行ROOT,即可全方位各种姿势玩弄手表。刷机具有一定风险,请谨慎而为。此流程经过本人亲自试验、编写,可以保证可靠。【操作讲解】如果数据线稳定,且降级机型没有选择错误,操作没有失误,可以大大提高成功率。但是ROOT是有一定风险的,请务必谨慎尝试(如果您学会了救砖方法,可以大大降低刷机风险)。降级、ROOT全过程请拔卡操作,并不要连接WIFI下载降级程序、手表驱动、刷机文件、刷机程序。一共应该安装3个程序,得到一个文件夹方式一:[链接下载]①手表降级工具:百度网盘:https://pan.baidu.com/s/1pctonhh7_rzTs9bs4eyb0w(提取码为yqff)

上一篇: Day2 LeetCode 977. 有序数组的平方 c&python
下一篇: Day2 LeetCode 59. 螺旋矩阵 II c&python
lemon_fanny
博客等级 码龄4年 5粉丝 12原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值