代码随想录——双指针/滑动窗口(二)

一.最长连续递增序列

在这里插入图片描述

  • go语言
func max(a,b int) int{
    if a>b{
        return a
    }
    return b
}

func findLengthOfLCIS(nums []int) int {
    n:=len(nums)
    maxlen:=0
    for l:=0;l<n;l++{
        r:=l+1
        for r<n&&nums[r]>nums[r-1]{
            r++
        }
        maxlen=max(r-l,maxlen)
    }
    return maxlen
}
  • cpp
int findLengthOfLCIS(vector<int>& nums) {
    int n = nums.size();
    int maxlen = 0;
    for (int l = 0; l < n; l++) {
        int r = l + 1;
        while (r < n && nums[r] > nums[r - 1]) {
            r++;
        }
        maxlen = max(r - l, maxlen);
    }
    return maxlen;
}

二.75. 颜色分类

在这里插入图片描述

  • go
func sortColors(nums []int)  {
    n:=len(nums)
    n0,n1:=0,0
    for i:=0;i<n;i++{
        num:=nums[i]
        nums[i]=2
        if num<2{
            nums[n1]=1
            n1++
        }
        if num<1{
            nums[n0]=0
            n0++
        }
    }
}
  • cpp
void sortColors(vector<int>& nums) {
    int n = nums.size();
    int n0 = 0, n1 = 0;
    for (int i = 0; i < n; i++) {
        int num = nums[i];
        nums[i] = 2;
        if (num < 2) {
            nums[n1++] = 1;
        }
        if (num < 1) {
            nums[n0++] = 0;
        }
    }
}

三. 904. 水果成篮

在这里插入图片描述

  • go
func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}


func totalFruit(nums []int) int {
    cnt:=map[int]int{}
    maxlen:=0
    l:=0
    for r,x:=range(nums){
        cnt[x]++
        for len(cnt)>2{
            y:=nums[l]
            cnt[y]--
            if cnt[y]==0{
                delete(cnt,y)
            }
            l++
        }
        maxlen=max(maxlen,r-l+1)
    }
    return maxlen
}
  • cpp
class Solution {
public:
    int totalFruit(vector<int>& fruits) {
        unordered_map<int,int> map;
        int l=0;
        int maxlen=0;
        int n=fruits.size();
        for(int r=0;r<n;r++)
        {
            map[fruits[r]]++;
            while(map.size()>2)
            {
                auto y=map.find(fruits[l]);
                y->second--;
                if(y->second==0)
                {
                    map.erase(y);
                }
                l++;
            }
            maxlen=max(maxlen,r-l+1);
        }
        return maxlen;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么大模型训练需要GPU,以及适合训练大模型的GPU介绍

文章目录 前言 1、为什么大模型训练需要GPU&#xff0c;而非CPU 2、现在都有哪些合适的GPU适合训练&#xff0c;价格如何 前言 今天偶然看到一篇关于介绍GPU的推文&#xff0c;我们在复现代码以及模型训练过程中&#xff0c;GPU的使用是必不可少的&#xff0c;那么大模型训练需…

软件测试(Web自动化测试)

一.自动化测试简介 1.自动化测试是一种把人工驱动的测试行为转化为机器执行的测试过程。 2.使用自动化测试需要满足的3个条件&#xff1a; &#xff08;1&#xff09;项目需求变动不频繁 &#xff08;2&#xff09;项目进度压力不大&#xff0c;时间不紧迫 &#xff08;3&…

python struct模块 处理字节流

首先看一下&#xff0c;struct 的字节顺序格式。 其次是struct的格式对照表。 下面是案例&#xff1a; 单项数据编解码 >>>struct.pack(i,379978) bJ\xcc\x05\x00 >>>struct.pack(>i,379978) b\x00\x05\xccJ解析&#xff1a; >>>struct.unpa…

5.组合与继承

1.面向对象 在C中&#xff0c;面向对象&#xff08;Object-Oriented&#xff09;是一种程序设计范式&#xff0c;它使用“对象”来设计应用程序和软件。面向对象编程&#xff08;OOP&#xff09;的核心概念包括类&#xff08;Class&#xff09;、对象&#xff08;Object&#x…

23.leetcode---从前序与中序中遍历二叉树(Java版)

题目链接: https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/submissions/518810727/ 代码: 测试:

建设数字化工厂系统需要哪些核心技术

随着工业4.0时代的来临&#xff0c;数字化工厂系统已成为制造业转型升级的关键所在。数字化工厂系统通过集成各种先进技术&#xff0c;实现生产过程的智能化、自动化和高效化&#xff0c;进而提升企业的竞争力。那么建设这样一个系统究竟需要哪些核心技术呢&#xff1f; 一、工…

如何创建网址静态码?二维码扫码跳转网址的方法

现在很多的网址链接需要转换成二维码之后来使用&#xff0c;比如印刷包装、宣传单、公众号等方面应用&#xff0c;用户可以通过扫码跳转到对应链接的页面&#xff0c;查看页面内容。那么想要将链接转换二维码&#xff0c;并且二维码长期有效&#xff0c;可以使用生成静态码的方…

CSS文本属性与字体属性

目录 文本属性 文本颜色 文本对齐 修饰文本 文本缩进 行高 字体属性 字体系列 字体大小 字体粗细 字体样式 字体/文本综合属性写法 Chrome调试工具的使用 文本属性 文本颜色 在CSS中使用color 属性用于定义文本的颜色&#xff0c;使用background-color设置一个盒…

attempt to compare nil with number -- 黑马点评出现问题

问题情况 : 主要问题 : 调用lua执行redis时&#xff0c;有一个值会接受nil&#xff08;因为redis中没有该数据&#xff09;或者数值&#xff0c;当该值为nil时执行报错&#xff0c;因为会用到将该值与其他数字比较&#xff0c;故报错attempt to compare nil with number 当然…

Linux 底软开发——对CAN的详细操作(周期发送,异常检测,过滤报文)

Linux底软开发—对CAN发送接收详细操作 文章目录 Linux底软开发—对CAN发送接收详细操作1.保证多条CAN数据发送的周期性2.解析CAN报文数据3.CAN总线异常机制应对4.对CAN报文进行过滤操作5.完整的接收报文代码&#xff08;过滤&#xff0c;心跳检测&#xff0c;解析&#xff09;…

大语言模型Ollama

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Ollama简介 Ollama是一个开源的大语言模型平台&#xff0c;它允许用户在本地环境中运行、创建和共享大型语言模型。Ollama提供了丰富的功能和特性&#xff0c;使得用户可以…

eCharts 折线图 一段是实线,一段是虚线的实现效果

在lineStyle里写了不生效的话&#xff0c;可以尝试数据拼接 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [150, 230, 224,218 ,,,],type: line},{data: [,,, 218, 135, 147, 260],type: line,lineStyl…

Git:使用conda命令切换虚拟环境

1. 问题 在win10电脑的Git中&#xff0c;无法使用conda list命令&#xff0c;报错&#xff08;bash&#xff1a;conda&#xff1a;command not found&#xff09;。也无法使用conda activate base命令激活虚拟环境&#xff0c;报错&#xff08;bash&#xff1a;conda&#xff…

【面试必会】线程池创建方式详解

最近面试问道了线程池的创建方式&#xff0c;这里出一篇文章记录下这一知识点&#xff01; 线程池是一种多线程处理形式&#xff0c;处理过程中将任务添加到队列&#xff0c;然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的ThreadFactory创建…

报名照片10k怎么处理?教你几个方法

现在在每年的事业单位考公的时候&#xff0c;大家都会在网上报名提交个人信息&#xff0c;其中有一项就是需要上传我们的考试证件照&#xff0c;平台通常会要求照片大小为10kb以下&#xff0c;那么如何将过大的图片压缩到10kb呢?本文将介绍如何处理这一问题&#xff0c;让您轻…

STM32 HAL库F103系列之ADC实验(一)

ADC工作原理&#xff1a; 1、输入通道&#xff1a; 2、转换序列&#xff1a; A/D转换被组织为两组&#xff1a;规则组&#xff08;常规转换组&#xff09;和注入组&#xff08;注入转换组&#xff09; 规则组最多可以有16个转换&#xff0c;注入组最多有4个转换 规则组和注入…

redis7安装与配置

一、下载 通过 redis官网 或者 redis中文网 下载。 以下是 redis 相关文档资料链接&#xff1a; redis源码地址 redis在线测试 redis命令参考 redis中文文档 历史发布版本的源码地址 二、版本命名规则 Redis从发布到现在&#xff0c;已经有十余年的时光了&#xff0c;…

修改npm源--多种方式

2024年&#xff0c;1月22日 npm.taobao.org 域名证书已到期下线。 重置官方源 npm config set registry https://registry.npmjs.org/ 淘宝源&#xff0c;使用最新版&#xff0c;旧版停止了 npm config set registry https://registry.npmmirror.com 查看当前镜像源 npm …

跨越未知,拥抱挑战——新征程

在浩瀚的IT领域里&#xff0c;每一位开发工程师都如同一位探险家&#xff0c;不断地探索、挑战和成长。作为一名新入职的Java开发工程师&#xff0c;我面临着全新的技术栈和业务领域&#xff0c;这是一次跨越未知的征程&#xff0c;也是一次自我提升的机会。 新入职 初入公司…

基于Springboot的网课管理系统

基于SpringbootVue的网课管理系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 课程表 论坛交流 学校公告 后端 学生管理 教师管理 班级管理 课程分类管理…