当前位置: 首页 > news >正文

leetcode 651. 4键键盘

651. 4键键盘

中等 102 company 微软 Microsoft company 谷歌 Google company 亚马逊

假设你有一个特殊的键盘包含下面的按键:

  • A:在屏幕上打印一个 ‘A’。
  • Ctrl-A:选中整个屏幕。
  • Ctrl-C:复制选中区域到缓冲区。
  • Ctrl-V:将缓冲区内容输出到上次输入的结束位置,并显示在屏幕上。

现在,你可以 最多 按键 n 次(使用上述四种按键),返回屏幕上最多可以显示 ‘A’ 的个数 。

示例 1:

输入: n = 3
输出: 3
解释: 我们最多可以在屏幕上显示三个’A’通过如下顺序按键: A, A, A

示例 2:

输入: n = 7
输出: 9
解释: 我们最多可以在屏幕上显示九个’A’通过如下顺序按键: A, A, A, Ctrl A, Ctrl C, Ctrl V, Ctrl V

提示:

1 <= n <= 50

解析:

  • 一个位置上的数可以由前边数复制过来,也可以时在前一个数的最大值上+1
  • 并且还可以连续复制,因此枚举赋值其实点
  • 在连续复制期间,执行操作一这种操作肯定不如接着复制,因此,考虑连续复制是不用想那么复杂;

代码:

class Solution {
public:// f[i] 表示 i 个元素的最大值// f[i]  = max(f[i-j]*可复制长度,f[i-1]+1)int maxA(int n) {int f[51];memset(f, 0, sizeof(f));f[1]=1,f[2]=2,f[3]=3;for(int i=4;i<=n;i++){int res = f[i-1]+1;// 枚举连续复制的起点,前两个操作为a,c中间的操作都是复制for(int j=i-3;j>=0;j--){res = max(f[j]*(i-j-1),res);}f[i] = res;}return f[n];}
};

相关文章:

leetcode 651. 4键键盘

651. 4键键盘 中等 102 company 微软 Microsoft company 谷歌 Google company 亚马逊 假设你有一个特殊的键盘包含下面的按键&#xff1a; A&#xff1a;在屏幕上打印一个 ‘A’。Ctrl-A&#xff1a;选中整个屏幕。Ctrl-C&#xff1a;复制选中区域到缓冲区。Ctrl-V&#xff1a…...

Python垃圾回收机制

Python 运行过程中会不停的创建各种变量&#xff0c;而这些变量是需要存储在内存中的&#xff0c;随着程序的不断运行&#xff0c;变量数量越来越多&#xff0c;所占用的空间势必越来越大&#xff0c;如果对变量所占用的内存空间管理不当的话&#xff0c;那么肯定会出现 out of…...

Grafana插件安装并接入zabbix数据源(03)

一、在线安装插件 如果不指定插件安装位置,则默认安装位置为/var/lib/grafana/plugins;插件安装后需要重启grafana-server 安装zabbix插件alexanderzobnin-zabbix-app # grafana-cli plugins install alexanderzobnin-zabbix-app 使用--pluginsDir指定安装路径 # grafana…...

简述 JavaScript 中 prototype

简述 JavaScript 中 prototype 这篇笔记主要捋一下这么几个概念&#xff1a; JS 的继承构造函数new 的作用及简易实现__proto__ & prototype同样的方法&#xff0c;class 和 prototype 中分别是怎么实现的 基础概念 JS 是通过 prototype chaining 实现继承的语言&#…...

一觉醒来Chat gpt就被淘汰了

目录 什么是Auto GPT&#xff1f; 与其他语言生成模型相比&#xff0c;Auto GPT具有以下优点 Auto GPT的能力 Auto GPT的能力非常强大&#xff0c;它可以应用于各种文本生成场景&#xff0c;包括但不限于以下几个方面 Auto GPT的历史 马斯克说&#xff1a;“ChatGPT 好得吓…...

13款JavaScript图像处理库,建议收藏备用

pica&#xff1a; 一个在浏览器中调整图像大小&#xff0c;而不会出现像素失真&#xff0c;处理速度非常快的图片处理库&#xff0c;仓库地址https://github.com/nodeca/picahtml2canvas&#xff1a; 强大的使用js开发的浏览器网页截图工具&#xff0c;仓库地址https://github.…...

uniapp m3u8格式视频加载

uniapp一&#xff1a;mui-player&#xff1a;三方 h5 web app uniapp 使用 mui-player 插件播放 m3u8/flv 视频流_翘翘红的博客-CSDN博客 uniapp 开发的h5项目&#xff0c;需要播放m3u8/flv后缀的视频&#xff0c;网上有很多视频插件&#xff0c;但是样式和效果不尽如人意&am…...

iOS描述文件(.mobileprovision)一键申请

iOS描述文件(.mobileprovision)一键申请 在主界面上点击描述文件按钮。 新建ios描述文件 然后点击新建&#xff0c;然后输入描述文件名称&#xff0c;描述文件名称字符和数字&#xff0c;自己好辨识就可以。然后选择描述文件类型&#xff0c;再选择bundle ID&#xff0c;如果…...

进行性能压力测试的原因、目的和好处

性能压力测试是指在模拟高负载、高并发情况下对软件系统进行测试&#xff0c;以衡量系统在实际使用过程中的性能表现。这些测试可以为生产环境中的应用程序提供关键数据&#xff0c;并帮助开发人员从根本上了解系统的实际性能。在本文中&#xff0c;我们将探讨进行性能压力测试…...

【计算机视觉】如何利用 CLIP 做简单的人脸任务?(含源代码)

文章目录 一、数据集介绍二、源代码 结果三、代码逐行解读 一、数据集介绍 CELEBA 数据集&#xff08;CelebFaces Attributes Dataset&#xff09;是一个大规模的人脸图像数据集&#xff0c;旨在用于训练和评估人脸相关的计算机视觉模型。该数据集由众多名人的脸部图像组成&a…...

基于显扬科技3D视觉相机的医疗试管分拣系统

行业现状&#xff1a; 医疗试管分拣是医疗行业中的一个重要环节&#xff0c;指将医疗实验室或生物技术研究中的试管按照一定的规则进行分拣&#xff0c;并对试管的类型、位置、数量等信息进行识别和管理。 随着医疗技术的不断发展和诊断治疗的精细化&#xff0c;医疗试管分拣…...

编译zlib

zlib被设计为一个免费的&#xff0c;通用的&#xff0c;法律上不受限制的-即不受任何专利保护的无损数据压缩库&#xff0c;几乎可以在任何计算机硬件和操作系统上使用。 官网&#xff1a;http://www.zlib.net/ 下载zlib源码:http://www.zlib.net/zlib1213.zip 备用地址&#x…...

如何让“ChatGPT自己写出好的Prompt的“脚本在这里

写个好的Prompt太费力了 在网上&#xff0c;你可能会看到很多人告诉你如何写Prompt&#xff0c;需要遵循各种规则&#xff0c;扮演不同的角色&#xff0c;任务明确、要求详细&#xff0c;还需要不断迭代优化。写一个出色的Prompt需要投入大量的时间和精力。甚至有一些公开的Pr…...

菜单选择shell

[rootes3 data]# vi action.sh #!/bin/bash . /etc/init.d/functionsecho -en "\E[$[RANDOM%731];1m"cat <<EOF请选择&#xff1a;1) 备份数据库2)清理日志3)软件升级4)软件回滚5)删库跑路EOFecho -en \E[0mread -p "请选择上面的项对应的数字1-5&#xf…...

Redis高可用性详解

目录 ​编辑 高可用性&#xff1a; 主从复制&#xff08;Master-Slave Replication&#xff09;&#xff1a; 主从复制的一般工作流程&#xff1a; 哨兵模式&#xff08;Sentinel Mode&#xff09;&#xff1a; 哨兵模式的一般工作流程&#xff1a; 集群模式&#xff08…...

MySQL(1) ---- 数据库介绍与MySQL概述

介绍 1、什么是数据库&#xff1f; 数据库&#xff1a;DateBase&#xff08;DB&#xff09;&#xff0c;是存储和管理数据的仓库。数据库管理系统&#xff1a;DataBase Management System&#xff08;DBMS&#xff09;&#xff0c;操纵和管理数据库的大型软件。SQL&#xff1…...

面试题之软件测试流程

说说公司的软件测试流程&#xff0c;这&#xff0c;是常考的面试题之一。 不同公司的流程不一样&#xff0c;现状决定流程&#xff0c;没有绝对的对错。 以结果为导向&#xff0c;保证产品质量&#xff0c;提高测试效率&#xff0c;才是王道。 以下的流程为业界比较标准的流程&…...

MyBatis中#{}与${}的区别,与各自的应用场景

#{}和${}的区别&#xff1a; #{}: 底层使用PreparedStatement。特点&#xff1a;先进行SQL语句的编译&#xff0c;然后给SQL语句的占位符问号?传值。可以避免SQL注入的风险。 ${}&#xff1a;底层使用Statement。特点&#xff1a;先进行SQL语句的拼接&#xff0c;然后再对SQL语…...

泛型类相关

package com.test.test02;/* * GenericTest就是一个普通的类 * GenericTest<E>就是一个泛型类 * <>里面就是一个参数类型&#xff0c;但是这个类型是什么呢&#xff1f;这个类型现在是不确定的&#xff0c;相当于一个占位。 * 但是现在确定的是这个类型一定是一…...

一文速学数模-季节性时序预测SARIMA模型详解+Python实现

目录 前言 一、季节时间序列模型概述 二、SARIMA模型定义 三.SARIMA模型算法原理...

Netty 实战篇:为 Netty RPC 框架增加超时控制与重试机制,防止系统雪崩

本文介绍如何在自研 Netty RPC 框架中实现超时控制与重试机制。合理的超时策略可以避免调用卡死&#xff0c;重试机制可以提升调用成功率&#xff0c;在高可用系统中不可或缺。 一、为什么要有超时和重试&#xff1f; RPC 是跨进程调用&#xff0c;失败是常态。常见问题包括&a…...

linux 1.0.3

挂载 这个虚拟机啥时候都能挂起 会有一个这个东东 选择连接虚拟机&#xff0c;然后就连到linux了 这有两个键&#xff0c;一个是和主机连接一个是和虚拟机连接 先把U盘拔掉 原本是没有这个盘的&#xff0c;但是插上去之后&#xff0c;电脑创建了一个虚拟的盘 也就是图中的F…...

帕金森常见情况解读

一、身体出现的异常节奏​ 帕金森会让身体原本协调的 “舞步” 出现错乱。它是一种影响身体行动能力的状况&#xff0c;随着时间推进&#xff0c;就像老旧的时钟&#xff0c;齿轮转动不再顺畅&#xff0c;使得身体各个部位的配合逐渐失衡&#xff0c;打乱日常行动的节奏。​ …...

Linux(9)——进程(控制篇——下)

目录 三、进程等待 1&#xff09;进程等待的必要性 2&#xff09;获取子进程的status 3&#xff09;进程的等待方法 wait方法 waitpid方法 多进程创建以及等待的代码模型 非阻塞的轮训检测 四、进程程序替换 1&#xff09;替换原理 2&#xff09;替换函数 3&…...

C#实现图片缩略图生成:多种模式详解与实践

C#实现图片缩略图生成&#xff1a;多种模式详解与实践 在图像处理的场景中&#xff0c;生成图片缩略图是一项常见且实用的功能。无论是搭建图片展示网站&#xff0c;还是开发本地图片管理工具&#xff0c;按需生成合适尺寸的缩略图&#xff0c;能够有效减少图片传输和显示所需…...

K8S查看pod资源占用和物理机器IP对应关系

方法1&#xff1a;使用管道组合多个grep kubectl describe node | grep -E "Resource|InternalIP" -A 3方法2&#xff1a;显示节点名称和IP地址的对应关系 kubectl describe node | grep -E "Name:|InternalIP:"方法3&#xff1a;更清晰的格式化输出 ku…...

Python爬虫实战:研究Requests-HTML库相关技术

1. 引言 1.1 研究背景与意义 随着互联网数据量的爆炸式增长,网络爬虫已成为数据获取的重要工具,广泛应用于市场调研、舆情分析、学术研究等领域。传统爬虫技术在面对现代 JavaScript 动态渲染网页时面临挑战,而 Requests-HTML 库通过集成浏览器渲染引擎,为解决这一问题提…...

怎么从一台电脑拷贝已安装的所有python第三方库到另一台

要将Python库从一台电脑拷贝到另一台&#xff0c;可以采用以下方法&#xff1a; 方法一&#xff1a;使用pip命令导出和安装依赖 如果目标电脑在线&#xff0c;且python与pip命令可以正常使用 在源电脑上&#xff0c;打开命令行&#xff0c;执行以下命令导出所有依赖库到requ…...

@Async 注解 走的是主线程 还是子线程呢

Asyncz注解所在的包 package org.springframework.scheduling.annotation; Async 注解在Spring框架中用于标记一个方法为异步方法。当这个方法被调用时&#xff0c;它不会阻塞调用线程&#xff0c;而是会在一个单独的线程中执行。因此&#xff0c;Async 注解走的是子线程&…...

Android studio 查看aar源码出现/* compiled code */

如图查看aar源码时看不到具体实现&#xff0c;在排除是sdk版本导致的问题后&#xff0c;下面说解决方法 打开设置&#xff0c;找到插件 输入decompiler 搜索 这个是自带的反编译工具&#xff0c;启用就好了...