代码随想录——双指针与滑动窗口(四)

news2024/11/25 10:33:07

一.1423. 可获得的最大点数

题目详情

在这里插入图片描述

解题思路

这里我们每次只能取最左或最右边的卡牌,第一反应其实是使用双指针,通过局部贪心来解决,但是如果两边相等的话用局部贪心无法来判断到底取哪一边,那我们不妨换一个思路:

我们首先任选一边维持一个长度为k的子数组,计算出子数组的和,记录下来为当前最大值,然后定义左右指针,删去左指针指向的值,加上右指针指向的值,不断更新当前最大值,当左指针的位置到-1,当前最大值就是目标值。

解题代码:

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

func maxScore(cardPoints []int, k int) int {
    if k==0{
        return 0
    }
    n:=len(cardPoints)
    l,r:=0,n-1
    res:=0
    for l<k{
        res+=cardPoints[l]
        l++
    }
    l=k-1
    maxvalue:=res
    for l>=0{
        res-=cardPoints[l]
        res+=cardPoints[r]
        l--
        r--
        maxvalue=max(maxvalue,res)
    }
    return maxvalue
}
  • Cpp
class Solution {
public:
    int max(int a, int b) {
        return a > b ? a : b;
    }

    int maxScore(std::vector<int>& cardPoints, int k) {
        if (k == 0) {
            return 0;
        }
        int n = cardPoints.size();
        int l = 0, r = n - 1;
        int res = 0;
        for (l = 0; l < k; l++) {
            res += cardPoints[l];
        }
        l = k - 1;
        int maxvalue = res;
        while (l >= 0) {
            res -= cardPoints[l];
            res += cardPoints[r];
            l--;
            r--;
            maxvalue = max(maxvalue, res);
        }
        return maxvalue;
    }
};

二.1456. 定长子串中元音的最大数目

题目详情

在这里插入图片描述

解题思路

这道题属于一个比较典型的滑动窗口题目了,我们维护一个定长的滑动窗口,记录里面的元音字母数即可。

代码

  • Go
func in (s rune) bool{
    if s=='a'||s=='o'||s=='e'||s=='i'||s=='u'{
        return true
    }else{
        return false
    }
}

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

func maxVowels(s string, k int) int {
   n:=len(s)
   l:=0
   maxvalue:=0
   sum:=0
   for r:=0;r<n;r++{
    if in(rune(s[r])){
        sum++
    }
    if r-l+1>k{
        if in(rune(s[l])){
            sum--
        }
        l++
    }
    maxvalue=max(maxvalue,sum)
   }
   return maxvalue
    
}
  • Cpp
class VowelCounter {
public:
    bool isVowel(char s) {
        if (s == 'a' || s == 'o' || s == 'e' || s == 'i' || s == 'u') {
            return true;
        }
        return false;
    }

    int max(int a, int b) {
        return a > b ? a : b;
    }

    int maxVowels(std::string s, int k) {
        int n = s.length();
        int l = 0;
        int maxvalue = 0;
        int sum = 0;
        for (int r = 0; r < n; r++) {
            if (isVowel(s[r])) {
                sum++;
            }
            if (r - l + 1 > k) {
                if (isVowel(s[l])) {
                    sum--;
                }
                l++;
            }
            maxvalue = max(maxvalue, sum);
        }
        return maxvalue;
    }
};

三.

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

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

相关文章

uniapp的app端推送功能,不使用unipush

1&#xff1a;推送功能使用htmlPlus实现&#xff1a;地址HTML5 API Reference (html5plus.org) 效果图&#xff1a; 代码实现&#xff1a; <template><view class"content"><view class"text-area"><button click"createMsg&q…

Echarts柱状图横坐标不显示

本人遇到的问题&#xff1a;折线图横坐标可以正常显示 柱状图接收一样的数据在横坐标却显示不了 1.在前端打印是否能够正常接收数据、数据类型是否有误以及数据是否有内容 console.log(typeof optionbar.xAxis.data)console.log(optionbar.xAxis.data) 2.如上确定能够接收到数…

1天搞定SpringBoot+Vue全栈开发 (6)组件化开发

1.NPM使用 2.Vue CLI使用 3.组件化开发 修改App.vue&#xff1a; <template><img alt"Vue logo" src"./assets/logo.png" /><Hello></Hello> </template><script> import Hello from "./components/Hello.vue&q…

2-5 任务:打印九九表

本次实战的目标是通过编写程序实现打印九九乘法表、字符矩形、字符平行四边形和字符菱形等图形&#xff0c;以及解决百钱买百鸡问题和输出素数等实际问题。在实战过程中&#xff0c;我们将学习并掌握以下知识点。 双重循环的使用&#xff1a;通过双重循环实现九九乘法表的打印&…

Vector Laboratories|用于生物偶联疗法BioDesign™ dPEG® Linker连接平台

术语dPEG代表“离散PEG&#xff08;discrete PEG&#xff09;”&#xff0c;这是一种均一的、单分子量&#xff08;MW&#xff09;、高纯度的新一代聚乙二醇聚合物。Vector Laboratorie采用其受专利保护的专有生产工艺&#xff0c;可生产提供适合于各种应用场景&#xff0c;具有…

3月PMP成绩已公布!(附查询流程)

2024年3月PMP考试成绩已出~宝子们抓紧时间查询&#xff0c;没查到的也不要着急&#xff0c;在一周内考试成绩都会以邮件的形式通知给大家~ 下面查询PMP成绩的流程给大家安排上~↓↓↓ 方式一&#xff1a;直接登陆官网查询 1、查询网址&#xff1a;PMI官网&#xff1a;www.pmi.…

【贪心算法】单源最短路径Python实现

文章目录 [toc]问题描述Dijkstra算法Dijkstra算法的正确性贪心选择性质最优子结构性质 Dijkstra算法应用示例Python实现时间复杂性 问题描述 给定一个带权有向图 G ( V , E ) G (V , E) G(V,E)&#xff0c;其中每条边的权是非负实数&#xff0c;给定 V V V中的一个顶点&…

Hive3.0新特性:Materialized Views 物化视图

Materialized Views 物化视图 在 Apache Hive 3.0 中引入了物化视图&#xff08;Materialized Views&#xff09;的支持&#xff0c;它们是预先计算并缓存了查询结果的数据结构&#xff0c;以提高查询性能和降低延迟。物化视图通过将查询的结果存储在物理表中来实现&#xff0…

LeetCode 142.环形链表Ⅱ

题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内…

解决本地启动项目,用IP地址访问失败问题

解决方法&#xff1a;看看index.html页面有没有 这个标签&#xff0c;将它注释掉

虚幻引擎笔记

虚幻引擎笔记 一、蓝图类二、创建自定义Character蓝图三、操作映射和轴映射 一、蓝图类 Actor&#xff1a;可以放置在关卡中的物体Pawn&#xff1a;相当于游戏角色&#xff0c;可以通过玩家控制器来控制角色&#xff1a;在Pawn的基础上增加了四处走动的功能。创建游戏角色时使用…

[华为OD]C卷 精准核算检测 100

题目&#xff1a; 为了达到新冠疫情精准防控的需要&#xff0c;为了避免全员核酸检测Q带来的浪费&#xff0c;需要精准圈定可 能被感染的人群。现在根据传染病流调以及大数据分析&#xff0c;得到了每个人之间在时间、空间上是 否存在轨迹的交叉现在给定一组确诊人员编号&…

C语言实战项目---通讯录

项目要实现的内容&#xff1a;能够存放100个人的通讯录程序&#xff0c;能够实现联系人数据的存储&#xff0c;删除&#xff0c;修改&#xff0c;查找&#xff0c;展示联系人的信息。 所需知识&#xff1a;结构体&#xff0c;指针&#xff0c;函数................. 废话不多…

代码随想录刷题随记30-贪心4

代码随想录刷题随记30-贪心4 860.柠檬水找零 leetcode链接 比较显然 class Solution {public boolean lemonadeChange(int[] bills) {int []accountnew int[3];for(int cur:bills){if(cur5)account[0];else if(cur10){account[0]--;if(account[0]<0)return false;account…

CTK库编译-01

地址 官网地址&#xff1a;Commontk github地址&#xff1a;https://github.com/commontk/CTK 编译环境 Qt套件&#xff1a; IDE&#xff1a;VS2022 使用vs2022 文件->打开->cmake 修改根目录下的CMakeLists.txt 默认只编译core模块&#xff0c;所以需要把部分模块…

VTK —— 三、简单操作 - 示例3 - 将点投影到平面上(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功&#xff0c;若无VTK库则请先参考如下链接编译vtk源码&#xff1a; VTK —— 一、Windows10下编译VTK源码&#xff0c;并用Vs2017代码测试&#xff08;附编译流程、附编译好的库、vtk测试源码&#xff09; 教程描述 本…

分析师常用商业分析模型

一、背景 在用户调研中&#xff0c;我们发现分析师对商业分析模型的使用还是比较频繁。本文主要对用户调研结果中的分析师常用商业分析模型以及一些业界经典的商业分析模型进行分析&#xff0c;并梳理出执行落地流程&#xff0c;以此来指导分析师工具设计分析功能的引导性。 …

SRC公益漏洞挖掘思路分享

0x00 前言 第一次尝试挖SRC的小伙伴可能会觉得挖掘漏洞非常困难&#xff0c;没有思路&#xff0c;不知道从何下手&#xff0c;在这里我分享一下我的思路 0x01 挖掘思路 确定自己要挖的漏洞&#xff0c;以及该漏洞可能存在的功能点&#xff0c;然后针对性的进行信息收集 inurl…

Llama 3 模型上下文长度扩展至1048K

AI苏妲己&#xff1a; Gradient AI 近日宣布&#xff0c;通过其创新的渐进式训练方法&#xff0c;成功将 Llama 3 系列模型的上下文长度扩展至超过100万令牌。 Llama 3 模型最初设计用于处理8000个令牌的上下文长度&#xff0c;这大约相当于6000字或10页文档。为了适应更长的…

如何迁移Windows PC数据到统信UOS 1070

原文链接&#xff1a;如何迁移Windows PC数据到统信UOS 1070 Hello&#xff0c;大家好啊&#xff01;随着统信UOS 1070的推出&#xff0c;越来越多的用户和企业选择迁移到这个基于Linux的操作系统&#xff0c;以享受其安全性和稳定性的优势。今天&#xff0c;我们将探讨如何使用…