首页 > 其他分享 >双指针模型

双指针模型

时间:2023-10-26 09:45:08浏览次数:31  
标签:p2 p1 && int 模型 ++ cnt1 指针

 

 

 

 

 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

const int N = 1e6 + 10, M = 2010;

int n, m;
int a[N];
int st[M];
int ll, rr = 1e8;

int main() {
    scanf("%d%d", &n, &m);
    for(int i = 0; i < n; i ++ ) scanf("%d", &a[i]);
    
    int l = 0, r = -1, cnt = 0;
    for(; r ++ < n;) {
        if(st[a[r]] == 0) cnt ++ ;
        st[a[r]] ++ ;
        while(st[a[l]] > 1) {
            st[a[l]] -- ;
            l ++ ;
        }
        
        if(cnt >= m) {
            if(r - l < rr - ll) {
                rr = r, ll = l;
            }
        }
    }
    
    cout << ll + 1 << ' ' << rr + 1 << endl;

    return 0;
}

 

 

 

class Solution {
public:
    int expressiveWords(string s, vector<string>& words) {
        int n = s.size();
        int res = 0;

        auto check = [&](string &s, string &p) -> bool {
            int n1 = s.size(), n2 = p.size();

            int p1 = 0, p2 = 0;
            while(p1 < n1 && p2 < n2) {
                int cnt1 = 0, cnt2 = 0;
                char c = s[p1];

                while(p1 < n1 && s[p1] == c) p1 ++ , cnt1 ++ ;
                while(p2 < n2 && p[p2] == c) p2 ++ , cnt2 ++ ;

                if(cnt1 < cnt2 || (cnt1 > cnt2 && cnt1 < 3)) return 0;
            }

            return p1 == n1 && p2 == n2;
        };

        for(auto &word: words) {
            if(check(s, word)) res ++ ;
        }

        return res;
    }
};

 

标签:p2,p1,&&,int,模型,++,cnt1,指针
From: https://www.cnblogs.com/zk6696/p/17706610.html

相关文章

  • R语言使用ARIMA模型预测股票收益时间序列|附代码数据
    原文链接:http://tecdat.cn/?p=2831原文出处:拓端数据部落公众号最近我们被客户要求撰写关于ARIMA的研究报告,包括一些图形和统计输出。“预测非常困难,特别是关于未来”。丹麦物理学家尼尔斯·波尔(NeilsBohr)很多人都会看到这句名言。预测是这篇博文的主题。在这篇文章中,我们将介......
  • R语言估计时变VAR模型时间序列的实证研究分析案例|附代码数据
    原文链接: http://tecdat.cn/?p=3364原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于时变VAR模型的研究报告,包括一些图形和统计输出。加载R包和数据集 加载包后,我们将此数据集中包含的12个心情变量进行子集化:  mood_data<-as.matrix(symptom_data$data[,......
  • 电机模型预测控制算法
    电机模型预测控制(ModelPredictiveControl,简称MPC)是一种基于模型的先进控制算法,适用于电机矢量控制。与传统的比例积分控制(PI控制)相比,MPC算法能够更好地优化控制性能和动态响应。下面是电机模型预测控制算法的基本步骤:建立电机模型:首先,需要建立电机的动态数学模型。一般情况下,可以......
  • diffusion扩散模型\datawhale组队学习——v3先运行一半(下)
    微调:好像是用新数据训练旧模型的管道。微调的参数有:图形大小:image_size数据批次:batch_size为减轻显卡压力,将数据批次再切分为2(n)倍,num_epochs相对应的,权重更新频率也乘2(n)倍,grad_accumulation_steps总感觉对模型影响不大捏?难道是为了加大图形质量和效果,就相应地延长训练时......
  • 超大场景的倾斜摄影三维模型的顶层合并构建的必要性分析
    超大场景的倾斜摄影三维模型的顶层合并构建的必要性分析   倾斜摄影三维模型的顶层构建是将倾斜摄影数据转换为精确的三维模型的过程。它具有许多重要的应用和意义,本文将介绍几个主要的原因。一、可视化与漫游倾斜摄影三维模型的顶层构建可以实现对地理场景的精确建模,从......
  • AI大语言模型+iThinkAir多维表格|打造零代码AI应用
    迄今为止,大语言模型主要以聊天的产品形态面向用户。ChatGPT、文心一言等已经成为人尽皆知的名词,基于ChatGPT、文心一言等的套壳聊天产品也层出不穷让人眼花缭乱。但是,如果要在工作中真正利用大语言模型来进行提效,聊天可能并不是很高效的一种形式。聊天的方式刚开始很吸引人,但是长期......
  • 大模型增量预训练
    增量预训练也叫领域自适应预训练(domain-adapterpretraining),即在所属领域数据上继续预训练。主要问题是在增量预训练后可能发生灾难性遗忘。避免灾难性遗忘主要从以下几个方面入手:1领域相关性增量数据与所选基座模型的原始训练数据尽量一定的相关性。2新数据分布与原始数据......
  • 大模型的幻觉问题
    一什么是幻觉问题大模型的幻觉问题是指大模型生成的答案不基于任何事实数据,简单来说就是杜撰、一本正经的胡说八道。幻觉问题也是影响大模型落地的重要原因之一幻觉问题分类1和用户输入冲突的幻觉2和上下文冲突的幻觉3和事实知识冲突的幻觉(目前重点)例如,大模型在生成医疗......
  • FastAPI学习-11. 请求body - 嵌套模型
    前言使用 FastAPI,你可以定义、校验、记录文档并使用任意深度嵌套的模型(归功于Pydantic)List字段你可以将一个属性定义为拥有子元素的类型。例如Python list:fromtypingimportUnionfromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classIte......
  • pydantic学习与使用-16.ORM 模型 orm_mode
    前言pydantic一般是把传入的键值对,转成pydantic对象.我们希望将一个自定义的类对象,转成pydantic模型,需在Config类中,设置属性orm_mode=True。开启from_orm()方法的使用开启orm_modepydantic的orm模型默认是关闭的,需在Config类中,设置属性orm_mode=True。开启from_orm()方......