华为机试 - 最长连续子序列

news2025/2/27 7:21:29

目录

题目描述

输入描述

输出描述

用例

题目解析

算法源码


题目描述

有N个正整数组成的一个序列。给定整数sum,求长度最长的连续子序列,使他们的和等于sum,返回此子序列的长度,

如果没有满足要求的序列,返回-1。

输入描述

第一行输入是:N个正整数组成的一个序列

第二行输入是:给定整数sum

输出描述

最长的连续子序列的长度

备注

  • 输入序列仅由数字和英文逗号构成,数字之间采用英文逗号分隔
  • 序列长度:1 <= N <= 200
  • 输入序列不考虑异常情况

用例

输入

1,2,3,4,2
6

输出3
说明1,2,3和4,2两个序列均能满足要求,所以最长的连续序列为1,2,3,因此结果为3。
输入1,2,3,4,2
20
输出-1
说明没有满足要求的子序列,返回-1

题目解析

本题可以利用双指针解决。

 同时,有一种特殊情况

 

 

算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

const lines = [];
rl.on("line", (line) => {
  lines.push(line);

  if (lines.length === 2) {
    const arr = lines[0].split(",").map(Number);
    const sum = parseInt(lines[1]);

    console.log(getMaxLen(arr, sum));

    lines.length = 0;
  }
});

function getMaxLen(arr, sum) {
  let ans = -1;
  let l = 0;
  let r = 0;
  let n = arr.length;

  let total = arr[l];

  while (l < n && r < n) {
    if (r < l) {
      r = l;
      total += arr[r];
    }

    if (total === sum) {
      ans = Math.max(ans, r - l + 1);
      total -= arr[l++];
      total += arr[++r];
    } else if (total < sum) {
      total += arr[++r];
    } else {
      total -= arr[l++];
    }
  }

  return ans;
}

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

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

相关文章

【Hack The Box】Linux练习-- Mirai

HTB 学习笔记 【Hack The Box】Linux练习-- Mirai &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月17日&#x1f334; &#x1f36…

元宇宙技术在几年后质变,迎来体验终端世界

京东集团高级副总裁、京东探索研究院院长陶大程京东集团高级副总裁、京东探索研究院院长陶大程是京东“产业元宇宙”的提出者和构建者。他谈到&#xff0c;希望通过构建元宇宙供应链降低实体经济参与数字经济的门槛&#xff0c;帮助实体经济完成数实融合的商业转型&#xff0c;…

设计模式复习题

1.选择题 1&#xff0e;在观察者模式中&#xff0c;表述错误的是(C )C.观察者可以改变被观察者的状态&#xff0c;再由被观察者通知所有观察者依据被观察者的状态进行。 2&#xff0e;对于违反里式代换原则的两个类&#xff0c;可以采用的候选解决方案错误的是: ( D )D.以上方…

斗鱼发布Q3财报:连续三个季度收入下滑,市值年初至今缩水五成

11月21日&#xff0c;斗鱼&#xff08;NASDAQ:DOYU&#xff09;发布2022年第三季度财务报告。 财报显示&#xff0c;斗鱼2022年第三季度的营收为17.98亿元&#xff0c;同比减少23.4%&#xff1b;净亏损660万元&#xff0c;2021年同期为亏损1.435亿元&#xff1b;调整后净利润为…

面向对象编程·上

面向对象编程上1.包1.1导入包中的类1.2静态导入1.3将类放到包中1.4包的访问权限控制 - [只能在当前包当中使用]1.5常见的系统包2.继承2.1背景2.2语法规则2.2.1super[不能出现在静态方法当中]作用总结 父类对象的引用2.3protected 关键字2.4更复杂的继承关系2.5final 关键字2.6组…

电容笔和触控笔有什么区别?值得入手电容笔品牌推荐

电容笔与传统的触控笔最大的不同之处是&#xff0c;电容笔具有良好的防误触和倾斜压感&#xff0c;能有效地降低书写过程中的麻烦。如果我们想要 IPAD和电容笔一起很好地使用&#xff0c;而且我们就没有过多的预算的话。那么&#xff0c;这款平替电容笔&#xff0c;就是最好的选…

看懂这篇文章-你就懂了数据库死锁产生的场景和解决方法

一、什么是死锁 加锁&#xff08;Locking&#xff09;是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据&#xff0c;读取数据的事务通常只需要获得读锁&#xff08;共享锁&#xff09;&#xff0c;修改数据的事务需要获得…

京东神灯文档:JVM参数GC线程数ParallelGCThreads合理性设置

目录 1. ParallelGCThreads参数含义 2. ParallelGCThreads参数设置 3. ParallelGCThreads参数实验 4. ParallelGCThreads扫描结果 5. ParallelGCThreads修改建议 1. ParallelGCThreads参数含义 在讲这个参数之前&#xff0c;先谈谈JVM垃圾回收(GC)算法的两个优化标的&…

ERP (SAP) Integrator Delphi Edition

ERP (SAP) Integrator Delphi Edition ERP(SAP)Integrator支持RFC和SAP服务&#xff0c;并允许开发人员轻松编写桌面、服务器和移动应用程序。它提供了一种连接到SAP R/3和NetWeaver系统的简单方法&#xff0c;并使应用程序能够进行远程功能调用&#xff0c;以便向这些远程功能…

SQL Server 卸载和安装

在莫不知名链接下载sql失败了&#xff0c;然就几天变化&#xff0c;让我从sql Server2019到2022了&#xff0c; 首先讲一下卸载吧&#xff0c;很简单一共就5步&#xff0c; 先停止服务&#xff0c;有关sql server的相关服务全部停止&#xff0c;再进入控制面板 > 卸载程序…

解决:Uncaught (in promise) TypeError: Failed to fetch 的问题

1、问题展示&#xff1a; 其一、报错的代码信息为&#xff1a; Access to fetch at .......... from origin ................. has been blocked by CORS policy: Response to preflight request doesnt pass access control check: Redirect is not allowed for a preflight…

HashSet和HashMap

目录 一、HashSet 1、HashSet简单介绍 2、HashSet的常用方法 3、HashSet保证元素不重复的原理 二、HashMap 1、HashMap简单介绍 2、HashMet的常用方法 3、使用LinkedHashMap集合保证元素添加顺序 三、HashSet和HashMap的区别和联系 1、区别 2、联系 一、HashSet 1、Has…

Web3 入门教程 1 —— 认知篇

如果你也喜欢Web3&#xff0c;希望在这做些有趣的、有意义的事情&#xff0c;那么我希望这篇文章可以帮助到你。 其实在很早之前&#xff0c;我就计划写一篇《Web3 新手教程》&#xff0c;送给想要进入 Web3 或者刚刚进入 Web3 的小伙伴&#xff0c;但是考虑到两点原因&#xf…

力扣 53. 最大子数组和 --- C语言求解

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 题解&#xff1a; 此题可以用动态规划和分治法。 方法1. 动态…

《深度学习进阶 自然语言处理》第七章:seq2seq介绍

文章目录7.1 seq2seq模型介绍7.1.1 seq2seq的原理7.1.2 时序数据转换简单举例7.2 seq2seq模型实现7.3 seq2seq模型改进7.3.1 反转输入数据(Reverse)7.3.2 偷窥(Peeky)7.4 seq2seq模型的应用7.5 总结之前文章链接&#xff1a; 开篇介绍&#xff1a;《深度学习进阶 自然语言处理…

MySQL Hash Join前世今生

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;nw MySQL Hash Join前世今生 因工作需要&#xff0c;对MySQL Hash Join的内部实现做了一些探索和实践&#x…

【Hack The Box】linux练习-- Mango

HTB 学习笔记 【Hack The Box】linux练习-- Mango &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月17日&#x1f334; &#x1f36…

01 基于yum方式部署Kubernetes集群

文章目录1.实验环境准备2.部署单节点的etcd1.在192.168.221.133节点安装etcd服务2.修改etcd的配置文件3.启动etcd并设置开机自启动4.检查集群的健康状态5.操作etcd服务3. master 组件部署1.在192.168.221.133节点安装master服务2.配置apiserver组件3.配置master的组件4.启动服务…

m基于MIMO中继通信和非规则LDPC编译码的matlab仿真,其中波束形成为SVD,MMSE,中继包括AF,DF,CF

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 即在非规则LDPC下&#xff0c;且源节点1个&#xff0c;中继一个&#xff0c;目标节点一个&#xff0c;天线也是1的情况对比三种中继协作协议的误码率。 做非规则LDPC码的以编码协作形…

computed计算方法不被调用的原因;只有在使用时才会被调用

目录 一、问题 二、解决方法 三、总结 一、问题 1.需求&#xff1a;根据组件外部一个变量的值来确定 组件内部的操作。组件外部可以更改filetime的值&#xff0c;filetime有值时这个界面可以操作&#xff0c;否则不可以操作。 我一想 用computed就可以了呀&#xff0c;动态…