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

一.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-1res:=0for l<k{res+=cardPoints[l]l++}l=k-1maxvalue:=resfor 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:=0maxvalue:=0sum:=0for 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.mzph.cn/diannao/5521.shtml

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

相关文章

AI项目二十一:视频动态手势识别

若该文为原创文章&#xff0c;转载请注明原文出处。 一、简介 人工智能的发展日新月异&#xff0c;也深刻的影响到人机交互领域的发展。手势动作作为一种自然、快捷的交互方式&#xff0c;在智能驾驶、虚拟现实等领域有着广泛的应用。手势识别的任务是&#xff0c;当操作者做出…

【QT教程】QT6图形渲染与OpenGL编程

QT6图形渲染与OpenGL编程 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免…

写文献综述常用的几种深度神经网络模型!

写文献综述常用的几种深度神经网络模型 卷积神经网络&#xff08;CNN&#xff09; 解释说明&#xff1a;专门用于处理图像和图像数据的深度学习模型。它通过卷积层、池化层等操作提取图像特征。应用&#xff1a;图像分类、目标检测、人脸识别等。未来改进&#xff1a;进一步提…

Linux 文件管理命令sum setfacl getfacl chacl

文章目录 2.Linux 文件管理命令2.58 sum&#xff1a;计算文件的校验和&#xff0c;以及文件占用的块数案例练习 2.59 setfacl&#xff1a;设定文件访问控制列表案例练习 2.60 getfacl&#xff1a;获取文件访问控制列表案例练习 2.61 chacl&#xff1a;更改文件或目录的访问控制…

Docker使用方法

Docker是一种容器化平台&#xff0c;它可以帮助开发人员将应用程序和其依赖项打包成一个独立的、可移植的容器&#xff0c;以便在不同的环境中运行。 以下是使用Docker的基本步骤&#xff1a; 安装Docker&#xff1a;首先&#xff0c;您需要在您的机器上安装Docker。您可以从D…

Pytorch:神经网络过程代码详解

文章目录 一、基本概念1、epoch2、遍历DataLoader 二、神经网络训练过程代码详解步骤一&#xff1a;选择并初始化优化器步骤二&#xff1a;计算损失步骤三&#xff1a;反向传播步骤四&#xff1a;更新模型参数步骤五&#xff1a;清空梯度组合到训练循环中步骤六&#xff1a;保存…

windows和mac 电脑 部署Ollama

官网地址&#xff1a;https://ollama.com/ github地址&#xff1a;https://github.com/ollama/ollama 一、windows下 https://github.com/ollama/ollama 安装大模型 ollama run llama3 下载的大模型地址&#xff1a; C:\Users\dengg\.ollama 4.34G

二维数组-----刷题2

题目不是傻子题目&#xff0c;但很简单&#xff01;定义一个变量k&#xff0c;在嵌套中不断累加输出即可。 #include<cstdio> int k,n; int main(){scanf("%d",&n);for(int i1;i<n;i){for(int j1;j<n;j){k;printf("%d ",k);}printf("…

Python基础学习之记录中间文件

倘若想记录代码运行过程中的结果文件&#xff0c;那么以下函数仅供参考 代码示例&#xff1a; import os import datetime import sys import pandas as pd# 定义总的文件夹路径 base_folder E:\\D\\log\\product_data_compare_log# 定义一个函数来创建带时间戳的文件夹 def…

LoRa模块在智能灌溉系统中的应用特点介绍

LoRa模块在智能灌溉系统中的应用特点主要体现在以下几个方面&#xff1a; 低功耗与长寿命&#xff1a; LoRa模块具有极低的功耗&#xff0c;使其在待机状态下耗电量极低&#xff0c;能够支持长时间连续运行&#xff0c;减少了频繁更换电池或充电的需求&#xff0c;确保了智能灌…

【Godot4.2】有序和无序列表函数库 - myList

概述 在打印输出或其他地方可能需要构建有序或无序列表。本质就是构造和维护一个纯文本数组。并用格式化文本形式&#xff0c;输出带序号或前缀字符的多行文本。 为此我专门设计了一个类myList&#xff0c;来完成这项任务。 代码 以下是myList类的完整代码&#xff1a; # …

SQL Sever无法连接服务器

SQL Sever无法连接服务器&#xff0c;报错证书链是由不受信任的颁发机构颁发的 解决方法&#xff1a;不用ssl方式连接 1、点击弹框中按钮“选项” 2、连接安全加密选择可选 3、不勾选“信任服务器证书” 4、点击“连接”&#xff0c;可连接成功

python安卓自动化pyaibote实践------学习通自动刷课

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文是一个完成一个自动播放课程&#xff0c;避免人为频繁点击脚本的构思与源码。 加油&#xff01;为实现全部电脑自动化办公而奋斗&#xff01; 为实现摆烂躺平的人生而奋斗&#xff01;&#xff01;&#xff…

视觉语言模型详解

视觉语言模型可以同时从图像和文本中学习&#xff0c;因此可用于视觉问答、图像描述等多种任务。本文&#xff0c;我们将带大家一览视觉语言模型领域: 作个概述、了解其工作原理、搞清楚如何找到真命天“模”、如何对其进行推理以及如何使用最新版的 trl 轻松对其进行微调。 什…

【C语言】指针篇-精通库中的快速排序算法:巧妙掌握技巧(4/5)

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、回调函数二、快速排序(Qsort)2.1 Qsort参数部分介绍2.2 不…

报错“Install Js dependencies failed”【鸿蒙开发Bug已解决】

文章目录 项目场景:问题描述原因分析:解决方案:此Bug解决方案总结Bug解决方案寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了【报错“Install Js dependencies failed”】的问题。 报错如下 问题描述 …

leetcode 92. 反转链表 II

class Solution(object):def reverseBetween(self, head, left, right):""":type head: ListNode:type left: int:type right: int:rtype: ListNode""" right right -1left left -1while( right-left>0 ):print(right-left)# 左侧节点l …

零基础玩转Linux+Ubuntu实战视频课程

零基础玩转LinuxUbuntu实战视频课程 Linux发行版之间的关系jpg 1-1课程简介及Linux学习路线介绍.mp4 1-10什么是环境变量.mp4 1-11文件系统管理.mp4 1-12用户账户管理.mp4 1-13文件的访问权限.mp4 1-14进程管理.mp4 1-15软件源码包的编译、安装与卸裁.mp4 1-16制作自己的deb软…

WRF原理与基本操作

WRF介绍 WPS是三个&#xff0c;它们协同工作&#xff0c;为真实数据模拟的输入准备输出资料,为真实数据模拟做预处理。 geogrid定义模式范围&#xff0c;将静态地形资料插值到格点 ; ungrib将气象数据从GRIB格式解码 提取气象场; metgrid将ungrib解码的气象场水平地插值到geog…

【C++语法练习】计算梯形的面积

题目链接&#xff1a;https://www.starrycoding.com/problem/158 题目描述 已知一个梯形的上底 a a a&#xff0c;下底 b b b和高 h h h&#xff0c;请求出它的面积&#xff08;结果保留两位小数&#xff09;。 输入格式 第一行一个整数 T T T表示测试用例个数。 ( 1 ≤ T …