labuladong日常刷题-差分数组 | LeetCode 1109航班预定统计 | 花式遍历 151反转字符串里的单词

差分数组–前缀和数组的升级

LeetCode 1109 航班预定统计 2024.1.1

  • 题目链接
  • labuladong讲解[链接]
    在这里插入图片描述
class Solution {
public:
    vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) {
        //构建航班人数数组,数组大小为n,初始化为0
        vector<int> people(n, 0);
        //将人数传入差分类中构造差分数组
        Diff diff(people);
        //遍历每条预定记录,从bookings[i][0]-1(与索引差1)开始人数增加,从bookings[i][1]位置人数减少至原来
        for(int i = 0; i < bookings.size(); i++)
        {
            int from = bookings[i][0]-1;
            int to = bookings[i][1];
            int num = bookings[i][2];
            //更新差分数组,从bookings[i][0]-1(与索引差1)开始人数增加,从bookings[i][1]位置人数减少至原来
            diff.increment(from, to, num);
        }
        //更新people数组,需要初始化people[0]
        people[0] = diff.diffnum[0];
        for(int i = 1; i < n; i++)
            people[i] = people[i-1]+diff.diffnum[i];
        //返回更新后的数组
        return people;
    }
    
    class Diff
    {
    public:
        vector<int> diffnum;
        Diff(vector<int> people)
        {
            diffnum = vector<int>(people.size(), 0);
        }
        void increment(int from, int to, int num)
        {
            diffnum[from] += num;
            if(to < diffnum.size())
                diffnum[to] -= num;
        }
    };
};

花式遍历

LeetCode 151 反转字符串里的单词 2024.1.1

  • 题目链接
  • labuladong讲解[链接]
    在这里插入图片描述
class Solution {
public:
    string reverseWords(string s) {
        //用栈来实现
        /*
        stack<char> st;
        string str;
        for(int i = s.size()-1; i >= 0; i--)
        {
            if(s[i] == ' ' && st.empty())
                continue;
            while(s[i] == ' ' && !st.empty())
            {
                str.push_back(st.top());
                st.pop();
            }
            if(s[i] == ' ')
                str.push_back(' ');            
            if(s[i] != ' ')
                st.push(s[i]);
        }
        while(!st.empty())
        {
            str.push_back(st.top());
            st.pop();
        }
        if(str[str.size()-1]  == ' ')
            str.pop_back();
        return str;
        */

        //先双指针移出不必要的空格,再整体反转,最后将每个单词反转即可得到答案
        //移除不必要空格
        int slow = 0;
        for(int i = 0; i < s.size(); i++)
        {
            if(slow != 0 && s[i] != ' ')
                s[slow++] = ' ';
            while(i < s.size() && s[i] != ' ')
                s[slow++] = s[i++];
        }
        s.resize(slow);
        //整体反转
        reverse(s.begin(), s.end());
        //最后将每个单词反转即可得到答案
        int left = 0;
        for(int i = 0; i < s.size(); i++)
        {
            if(s[i] == ' ')
            {
                reverse(s.begin()+left, s.begin()+i);
                left = i + 1;
            }
        }
        reverse(s.begin()+left, s.end());
        return s;
    }
};

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

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

相关文章

ICCV 2023 风格迁移方向 5 篇论文

1、StyleDiffusion: Controllable Disentangled Style Transfer via Diffusion Models 内容和风格&#xff08;Content and style disentanglement&#xff0c;C-S&#xff09;解耦是风格迁移的一个基本问题和关键挑战。基于显式定义&#xff08;例如Gram矩阵&#xff09;或隐式…

C++每日一练(9):观光缆车

题目描述 有n座两两相邻的山&#xff0c;山顶高度分别为a1&#xff0c;a2&#xff0c;...&#xff0c;an。蜗蜗想要在相邻的山顶间修建缆车&#xff0c;他想要知道相邻山峰之间最大的落差是多少&#xff1f; 输入 第一行一个整数n&#xff08;2<n<1000&#xff09;&#…

华为ensp网络设计期末测试题-复盘

网络拓扑图 地址分配表 vlan端口分配表 需求 The device is running!<Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]un in en Info: Information center is disabled. [Huawei]sys S1 [S1]vlan 99 [S1-vlan99]vlan 100 [S1-vlan100]des IT [S1-…

05 HAL库驱动蜂鸣器唱出一首小歌

目录 一、蜂鸣器的基本知识 1、有源蜂鸣器 2、无源蜂鸣器 二、PWM的相关知识 1. PWM概念 2. PWM常见参数 3.PWM基本结构 三、蜂鸣器发出音调的原理 四、频率计算 五、实验开始 一、蜂鸣器的基本知识 蜂鸣器是一种能够发出持续而连续的声音的电子设备&#xff0c;它被…

WINDOWS 批量修改图片文件名称(流星程序集之二十)

博主家里有一台电脑&#xff0c;存放家庭全部的照片和视频&#xff0c;从智能手机和3G网络发展开始&#xff0c;家里的照片和视频越来越多&#xff0c;已经达到上万个文件。终于&#xff0c;博主找到一个方法整理和保存这些珍贵的数据资料。 一、按年代目录整理照片和视频 按年…

低成本TB级数据库技术选型之思考两三点

一、背景 前段时间在搞毕业论文的选题&#xff0c;最头疼的就是大量的文献检索和阅读&#xff0c;从研究的角度上我们可以将文献分为四类&#xff1a; 理论文献&#xff1a;为研究提供理论的框架和基础的文献。这些文献可能并不会和所做的研究直接相关&#xff0c;甚至由于理…

「网络编程」其他重要的协议或技术_ DNS协议 | ICMP协议 | NAT技术

「前言」文章内容是DNS协议、ICMP协议、NAT技术的讲解。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、DNS协议1.1 背景1.2 域名简介1.3 域名解析的过程 二、ICMP协议2.1 ICMP简介2.2 ping命令2.3 traceroute命令 三、NAT技术3.1 NAT技术背景3.2 …

elasticsearch系列五:集群的备份与恢复

概述 前几篇咱们讲了es的语法、存储的优化、常规运维等等&#xff0c;今天咱们看下如何备份数据和恢复数据。 在传统的关系型数据库中我们有多种备份方式&#xff0c;常见有热备、冷备、全量定时增量备份、通过开发程序备份等等&#xff0c;其实在es中是一样的。 官方建议采用s…

Python 基础语法01

变量声明 #运算 num 1 num 1 print("num 1",num)num - 1 print("num - 1", num)num * 4 print("num * 4",num)num 3 num % 2 print("num%2",num)num ** 2 print("num ** 2", num)num 9 num // 2 print("num // …

20231228在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单前置摄像头ov13850

20231228在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单前置摄像头ov13850 2023/12/28 10:42 【碰到一个很神奇的问题】&#xff1a; 昨天晚上前置摄像头怎么也点不亮&#xff01;改了巨多的地方&#xff01;晚上睡觉之前把开发板彻底断电了&#xff01;今天开电脑…

【JavaFX】JDK11 基于Gson、hutool、Jackson持久化存储实体类数据的解决方案 (读取、追加、去重、写入json对象)

文章目录 开发环境效果前言一、Gson是什么?二、使用步骤1.引入依赖2.创建实体类创建 JsonFileService类创建JsonFileService的实现类 JsonFileServiceImpl三、实现效果开发环境 JDK11IDEA 2023.3Gson、hutool、JacksonJavaFX 11效果 前言 使用JDK1

Easy Rules规则引擎实战

文章目录 简介pom 规则抽象规则Rule基础规则BasicRule事实类Facts&#xff1a;map条件接口动作接口 四种规则定义方式注解方式RuleBuilder 链式Mvel和Spel表达式Yml配置 常用规则类DefaultRuleSpELRule&#xff08;Spring的表达式注入&#xff09; 组合规则UnitRuleGroup 规则引…

在线智能防雷监控检测系统应用方案

在线智能防雷监控检测系统是一种利用现代信息技术&#xff0c;对防雷设施的运行状态进行实时监测、管理和控制的系统&#xff0c;它可以有效提高防雷保护的安全性、可靠性和智能化程度&#xff0c;降低运维成本和风险&#xff0c;为用户提供全方位的防雷解决方案。 地凯科技在…

爬取豆瓣电影评论内容、星级、评论时间、支持人数

大家好&#xff0c;我是带我去滑雪&#xff0c;每天教你一个小技巧&#xff01; 本期爬取豆瓣电影评论人、评论时间、星级、支持人数、评论内容。话不多说&#xff0c;直接上代码&#xff1a; import requests from bs4 import BeautifulSoup import pandas as pd import time…

轻松注册谷歌账号,获取谷歌邮箱(Gmail)

“ 国内手机号无法注册谷歌账户&#xff08;邮箱&#xff09;&#xff1f;很好解决呀&#xff01;” 经常遇到某些朋友需要一个谷歌邮箱&#xff0c;却总是卡在某些步骤。今天特地出个详细教程帮助大家轻松注册谷歌账号&#xff0c;获取谷歌邮箱&#xff08;Gmail&#xff09;。…

解密C++中的forward<int>(a)和forward<int >(a):你真的了解它们之间的区别吗?

一文看尽C中的forward完美转发 一、前言二、深入理解forward和完美转发三、对forward<int>(a)的解析四、对forward<int &&>(a)的解析五、forward<int>(a)和forward<int &&>(a)的区别总结 一、前言 完美转发在C中具有重要性&#xff0…

vmware安装openEuler操作系统

vmware安装openEuler操作系统 1、下载openEuler操作系统镜像文件2、安装openEuler操作系统3、配置使用openEuler操作系统 1、下载openEuler操作系统镜像文件 官网下载链接 链接: https://www.openeuler.org/zh/download/ 这里选择 openEuler 22.03 LTS SP2 版本 标准镜像包 文…

Dungeon Scrawl——在线虚拟世界地图制作器

今天带来一款十分有趣的地图应用&#xff0c;同样也是在线地图工具&#xff0c;如果我们想要制作此类风格的地图&#xff0c;这款工具定能助我们一臂之力。 按照惯例先给出网址&#xff1a; Dungeon Scrawl | Free Online D&D Map Maker 进入网站&#xff0c;点击Start S…

Post-hoc Concept Bottleneck Models (PCBM)

ICLR 2023 spotlight 文章链接&#xff1a;https://arxiv.org/abs/2205.15480 代码链接&#xff1a;https://github.com/mertyg/post-hoc-cbm 一、概述 Post-hoc CBM&#xff08;PCBM&#xff09;也是CBM大家族中的一员&#xff0c;因此它的基本逻辑与CBM一致&#xff0c;就是…

从登录测试谈测试用例

谈谈登录测试&#xff1a; 可能你会说&#xff0c;“用户登录”这个测试对象也有点太简单了吧&#xff0c;我只要找一个用户&#xff0c;让他在界面上输入用户名和密码&#xff0c;然后点击“确 认”按钮&#xff0c;验证一下是否登录成功就可以了。的确&#xff0c;这构成了一…