最短子数组练习题 -- 算法小结

【算法】子数组异或和最大 给定一个整型数组 arr,其中可能有正、有负、有零,求其中子数组的最大异或和数组只有1个数,所以只有一个子数组,就是这个数组本身,最大异或和为3子数组有很多,但是{-28,-29}这个子数组的异或和为7,是所有子数组中最大的。 阅读详情

对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。

给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。

测试样例:
[1,4,6,5,9,10],6
返回:2
编程思路:找出需要排序的最小子数组,只需要找到需要移动位置的离两边位置最近的元素即可,我们知道离最左边需要移动元素就是第一个比前面最大的的元素小的元素,离最右边需要移动的元素就是比后面最小元素大的元素…..

import java.util.*;

public class Subsequence {
    public int shortestSubsequence(int[] A, int n) {
        // write code here
        if(A==null||n<1){
            return 0;
        }
        int left =0,right = 0,temmax=A[0],temmin=A[n-1];
        for(int i=0;i<n-1;i++){
           if(A[i+1]>=temmax){
               temmax = A[i+1]; //当前左边最大元素
           }else{
                right = i+1;   //若出现当前元素小于当前左边最大元素,则说明当前元素需要移动
           }
            if(A[n-i-2]<=temmin){
                temmin = A[n-i-2];  //当前右边最小元素
            }else{
                left = n-i-2;  //若出现当前元素大于当前右边最小元素,则说明当前元素需要移动
            }
        }
        if(right==left)
            return 0;
        return right-left+1;
    }
}

这里写图片描述

初学树莓派——(九)DHT11数据传入ONENET 目录 前言 DHT11实现本地温湿度监测 DHT11.py 接线图 效果图 温湿度数据上传至ONENET 新建产品 新建设备 ONENET.py 测试 Shell脚本配置 效果图 前言 本文分部分实现温湿度上传至OneNet云平台,本地数据监测,数据上传 新建一个文件夹,文件夹内包含DHT11.py、ONENET.py、tmp_data.txt、hum_data.txt DHT11实现本地温湿度监测 DHT11.py import RPi.GPIO as GPIO 阅读详情

相关推荐

本地AI助手部署指南:DeepSeek Harness与Ollama集成实践

AI Agent作为当前人工智能领域的热门技术,通过模拟人类决策过程,能够自主规划、调用工具并执行复杂任务。其核心原理在于将大语言模型的推理能力与外部工具API相结合,形成可闭环的工作流。这种技术架构的价值在于显著提升了AI系统的实用性和自动化水平,使其从单纯的对话工具转变为能够解决实际问题的智能助手。在应用场景上,AI Agent广泛应用于代码生成、数据分析、自动化办公等领域。本文聚焦于如何通过DeepSeek Harness平台与Ollama本地模型的集成,实现隐私安全、离线可用的AI助手部署方案,特别

dengjuanshou7445的博客 474

最短子数组

最短子数组问题描述:  给定一个数组a和数组长度n,求出需要排序的最短子数组长度,使得该子数组排好序时整个数组有序。测试样例: 输入:a={1,4,6,5,9,10}, n=6 输出:2 问题分析:  由题意知,我们需要找到一个子数组使得当该子数组排好序时整个数组有序。这就是说原数组可以分为三个部分,即a=pqk,此时我们找到的子数组为q。p和r已经分别有序且p中所有元素小于q中任意一个元素,k中任

技术杂谈 1113

信号完整性SI-PI

SI设计的主要难点在于需要综合信号的幅度、噪声、边沿、延时等影响信号质量的多种因素,并且这种因素常常相互依赖、互相影响,交叉在一起。1.1、信号过冲 (欠阻尼状态,可并联一个合适的电容):过冲会造成强烈的电磁干扰,另一方面会损伤后面的电路的输入及,甚至失效。信号完整性SI:是指电路系统中信号的质量,如果在要求的时间内,信号能不失真的从源端传输到接收端。优点:提供较慢的上升时间,减少反系量,产生更小的EMI,从而降低过冲,增加信号质量。导线之间的间距过小, 就会产生串扰,间距越小、串扰越大。

weixin_42304393的博客 4867

第二章 排序 || 第19节 最短子数组练习题

题目 对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。 给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。 测试样例: [1,4,6,5,9,10],6 返回:2 解析 C++版 class Subsequence { public: int shortestSu...

weixin_34115824的博客 128

第一届“龙信杯”电子数据取证竞赛Writeup

第一届“龙信杯”电子数据取证竞赛Writeup

toto的博客 1万+

信号完整性入门:为什么工程师总爱用dB来描述衰减?

本文深入探讨了信号完整性分析中工程师偏爱使用dB(分贝)单位描述衰减的原因。dB通过对数转换,将大动态范围的乘除关系简化为加减运算,极大地方便了多级系统分析和链路预算计算。文章重点解释了-3dB点的核心意义,即功率衰减一半的临界状态,并阐述了其在评估信道带宽、插入损耗与回波损耗等关键参数中的实际应用,是高效工程思维和沟通的重要工具。

weixin_29263201的博客 385

最短子数组练习题

对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。 给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。 解题思路: 从左开始遍历数组,记录下已经遍历部分的最大值max,如果遍历的数值小于max时,记录这种情况下最右的位置right。从左开始遍历数组,记录下已经遍历部分的最大值min,

ksws0320403的博客 353

SAP-ABAP:SAP ABAP 深度解析:BAPI 从入门到精通 —— 原理、实战与自定义开发全指南

SAP ABAP BAPI 深度解析摘要 本文全面介绍了 SAP ABAP 中的 BAPI(业务应用程序编程接口)技术,涵盖以下核心内容: BAPI 定义与特点:BAPI 是 SAP 为业务对象提供的标准化编程接口,具有面向对象、封装业务逻辑、标准化错误处理和版本兼容性等特点。 BAPI 与 RFC 关系:所有 BAPI 都是 RFC,但需额外满足业务对象注册、标准化参数和错误处理等要求。 BAPI 核心作用:包括业务逻辑封装、系统集成、标准化错误处理、版本兼容和审计合规。 实战演示:通过创建销售订单的完整

baidu_35680696的博客 1032

需要排序的最短子数组长度

/** * 需要排序的最短子数组长度 * @author Administrator * 如 arr=[1,5,3,4,2,6,7] 返回4 因为只有[5,3,4,2]需要排序 */ public class getMinLength { public static void main(String[] args) { int[] arr = {1,5,

NerveMore 472

手把手教你学simulink(90.1)--直流电动机实例:基于Simulink的基本模型的直流电动机(DC Motor)建模

直流电动机(DC Motor)因其结构简单、控制方便和良好的调速性能,广泛应用于各种工业自动化、机器人技术、家用电器以及航空航天等领域。为了更好地理解和应用直流电动机的工作原理及其控制系统,本项目旨在通过Simulink对直流电动机进行基本模型的建模与仿真。

MHD0815的博客 439

使用机器学习算法预测黄金价格

在本文中,我们将使用线性回归、XGBoost和LSTM这三种不同的机器学习算法来预测黄金价格。接下来,我们使用线性回归、XGBoost和LSTM分别建立了模型,并进行了训练和预测。这些机器学习算法可以帮助我们对黄金价格进行预测,但请注意,市场价格受多种因素影响,因此预测结果可能并不完全准确。接下来,我们需要对数据进行一些预处理,以便用于机器学习模型的训练和测试。我们将使用80%的数据作为训练集,20%的数据作为测试集。最后,我们将绘制每个模型的预测结果,并将其与实际价格进行比较,以评估模型的性能。

QromMatlab的博客 1316

算法攻关 - 最短无序连续子数组 (O(n))_581

一、题目描述 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。 示例 2: 输入:nums = [1,2,3,4] 输出:0 示例 3: 输入:nums = [1]

小诚信驿站 509

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

算法学习小结

1、最短无序连续子数组 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。 解题思路:O(n) 从左往右找到第一个降序点,从这个点开始找到最大的元素max。 从右往左找到第一个升序点,从这个点开始找到最小的元素min。 从左往右遍历,第一个大于min的元素即是失序数组

kwsunnh的博客 1592

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

滑动窗口解题小结

滑动窗口算法是一种针对子数组/子串问题的有效方法,分为定长和不定长两种类型。定长窗口适用于固定长度的子数组问题(如643题求最大平均数),通过维护固定大小的窗口进行计算。不定长窗口更具灵活性,可分为三类:求最长子数组(如3题无重复字符)、求最短子数组(如209题和≥target的最短子数组)和求子数组个数。对于子数组计数问题,又分为"越短越好"(如713题乘积小于k的子数组,使用i-left+1)和"越长越好"(如3325题字符至少出现k次的子串,使用left操作数)

m0_61662123的博客 1116

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

力扣209. 长度最小的子数组

2.首先移动j,并将j位置的值进行相加sum+=nums[j];如果和刚好大于等于目标值x,就将这段数组的长度记录到res中后面比较选出最小的返回,然后开始改变滑动窗口的大小,将i向前移动一个元素并将sum减去之前i位置的值sum-=nums[i++];这个地方是改变滑动窗口大小的精髓。如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。1.定义滑动窗口的起始位置i和j。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。

qq_59569832的博客 420

算法学习——技巧小结2(滑动窗口)

滑动窗口主要解决的是有关的问题,其本质是一个双指针技巧,左右指针之间(包含端点)的范围即为窗口。根据窗长可分为定长滑动窗口问题和不定长滑动窗口问题。指的是窗口的长度说固定的,即左右指针以同样都速度向右移动,保证窗长不变,一般解决的问题是求指定长度子数组的最值。据 灵神 总结,这类题,有一个固定框架,。指的是窗口的长度说变化的,一般来说右指针每次循环走一步,而左指针则不同,它只有在满足一定条件时才走。若结果是从满足一定条件的所有子数组中寻找,那就可以用不定长滑动窗口。

qq_48324023的博客 1070

算法-最大子数组

最大子数组,求解收益最大。

swg321321的博客 311

几道用 前缀和+哈希表优化【必要时加入状态压缩】来解决连续子数组的题目小结

文章目录Leetcode 560.和为 K 的子数组问题描述解题报告实现代码Leetcode 1248. 统计「优美子数组」问题描述解题报告实现代码Leetcode 523. 连续的子数组和问题描述解题报告实现代码Leetcode 1124. 表现良好的最长时间段问题描述解题报告实现代码Leetcode 1371. 每个元音包含偶数次的最长子字符串问题描述解题报告实现代码总结参考资料 Leetcode 560.和为 K 的子数组 问题描述 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的

MD 1027

算法——求数组中最大子数组和

题目 有一输入数组,数组里面的数字都是整数,可能为正,可能为负,也可能是0,要求该输入数组中最大子数组的和。 题目分析 面对这样的一个问题,首先需要仔细分析问题的条件与问题所求。这个问题提供了一个输入数组,里面会有若干个元素,每个元素可以为正数,可以为负数,也可以为0。而题目要求输出该数组中最大子数组的和,注意是要求连续相邻的若干元素组成的子数组,并且保证该子数组的和最大。

关注 Linux c/c++ 数据存储 网络 算法...... 1971

跟我一起学“仓颉”算法-分治算法练习题

本章为大家详细的介绍了仓颉数据结构与算法中分治算法练习题的内容。

Cool_foolisher的博客 329

算法刷题笔记【数组】209.长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 思路:滑动窗口也可以理解为双指针法的一种,即先确定终止位置,再根据当前子序列和大小的情况,不断调节子序列的起始位置。

ais_lee的博客 420

LeetCode算法题-Shortest Unsorted Continuous Subarray(Java实现)

这是悦乐书的第267次更新,第281篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第134题(顺位题号是581)。给定一个整数数组,找到一个连续的子数组,按升序对该子数组进行排序,使得整个数组也按升序排序。找到最短的无序连续子数组并输出其长度。例如: 输入:[2,6,4,8,10,9,15] 输出:5 说明:按升序对[6,4,8,10,9]子数组进行排序,以使整个数...

小川的博客 194

贪心算法几个经典例子python-Python贪心算法实例小结

本文实例讲述了Python贪心算法。分享给大家供大家参考,具体如下:1. 找零钱问题:假设只有 1 分、 2 分、五分、 1 角、二角、 五角、 1元的硬币。在超市结账 时,如果 需要找零钱, 收银员希望将最少的硬币数找给顾客。那么,给定 需要找的零钱数目,如何求得最少的硬币数呢?# -*- coding:utf-8 -*-def main():d = [0.01,0.02,0.05,0.1,0....

weixin_39743414的博客 2585

【算法设计与分析】实验——改写二分搜索算法,众数问题(算法分析:主要算法思路),有重复元素的排列问题,整数因子分解问题(算法实现:过程,分析,小结)

本文包含五个算法题目解答。2.1题实现数组子区间换位,通过三次转置完成,时间复杂度O(n);2.2题改进二分查找,返回目标值在数组中的位置或相邻元素位置。2.3题解决众数问题,使用字典统计元素出现次数,时间复杂度O(n)。2.4题处理有重复元素的排列,采用递归+回溯+剪枝方法,避免重复排列。2.5题整数因子分解,通过递归方式计算分解方案数。实验过程中遇到文件读写、递归理解等困难,通过查阅资料解决,掌握了相关编程技巧和算法思想。各算法均完成测试用例验证,达到预期效果。

2302_79596028的博客 1028

代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

力扣数组章节

2302_76229594的博客 964
上一篇: LinkedBlockingQueue 与PriorityQueue -- JAVA 基础
下一篇: 深入研究java.lang.ThreadLocal类 -- JAVA 进阶
qishun2xiao
博客等级 码龄9年 15粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值