【LeetCode】650. 只有两个键的键盘

news2024/11/15 14:01:33

650. 只有两个键的键盘(中等)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 思路

    • 不同于以往通过加减实现的动态规划,这里需要乘除法计算位置。因为粘贴操作是倍数增加,使一个一维数组 dp,其中位置 i 表示延展到长度 i 的最少操作次数。
    • 对于每个位置 j ,如果 j 可以被 i 整除,那么长度 i 就可以由长度 j 得到,其操作次数等价于把一个长度为 1 的 A 延展到长度为 i/j ,因此递推公式为:dp[i] = dp[j] + dp[i/j]; 。比如 i = 10 ,可以在 i=5 的时候,选择复制全部字符并粘贴,就扩展为 10 个 A。
  2. 代码

    class Solution {
    public:
        int minSteps(int n) {
            vector<int> dp(n+1, 0);
            for(int i=2; i<=n; ++i){
                dp[i] = i;
                for(int j=2; j*j<=i; ++j){
                    if(i % j == 0){
                        dp[i] = dp[j] + dp[i/j]; 
                        break;
                    }
                }
            }
            return dp[n];
        }
    };
    
  3. 收获

    • 理解起来有点难,自己跟着代码算一下比较好理解。
    • 我自己模拟的时候,计算错了,忘记复制全部字符,而我每次复制的字符都是之前复制的两倍(即 2 - 4 - 8 - …)。

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

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

相关文章

C++学习 Day6

目录 1. 类对象模型 1.1 如何计算类对象的大小 1.2 类对象的存储方式 1.3 结构体内存对齐规则 2. this指针 2.1 this指针的引出 2.2 this指针的特性 3. 类的6个默认成员函数 4.构造函数 4.1 概念 4.2 特性 1. 类对象模型 1.1 如何计算类对象的大小 class A { publi…

【Java】『蓝桥杯』10道编程题及答案(一)

系列文章 【Java】『蓝桥杯』10道编程题及答案&#xff08;一&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/130223115 【Java】『蓝桥杯』10道编程题及答案&#xff08;二&#xff09; 本文链接&#xff1a;https://blog.csdn.net/y…

【Hello Network】协议

作者&#xff1a;小萌新 专栏&#xff1a;网络 作者简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客简介&#xff1a;简单介绍下协议并且设计一个简单的网络服务器 协议 协议的概念结构化数据传输序列化和反序列化网络版计算机服务端代码协议定制客户端代码服务线程执…

[Netty] HashWheelTimer时间轮 (十六)

文章目录 1.常见定时任务实现2.时间轮算法3.HashedWheelTimer源码分析3.1 内部结构分析3.2 构造方法3.3 添加任务3.4 工作线程Worker3.5 停止时间轮 4.HashWheelTimer总结 1.常见定时任务实现 定时器的使用场景包括&#xff1a;成月统计报表、财务对账、会员积分结算、邮件推送…

Linux Podman容器介绍

目录 Podman讲解 Container 和 Container Images 的关系 安装Podman 配置root的容器管理 国内镜像源 配置Podman的镜像源 创建容器相关命令 配置rootless的容器管理 配置Podman镜像源 管理容器镜像 管理容器 将容器作为systemd服务运行 配置普通用户来创建systemd…

Jetpack Compose之线性布局和帧布局

概述 Compose 中的线性布局对应的是Android传统视图中的LinearLayout,不一样的地方是&#xff0c;Compose根据Orientation的不同又将布局分为Column和Row, Column对应传统视图LinearLayout中orientation “vertical”的情况&#xff0c;Row对应传统视图LinearLayout中orienta…

Redis入门学习笔记【二】Redis缓存

目录 一、Redis缓存 二、Redis使用缓存遇到的问题 2.1 数据一致性 2.2缓存雪崩 2.3 缓存穿透 2.4 缓存击穿 一、Redis缓存 数据缓存是Redis最重要的一个场景&#xff0c;为缓存而生&#xff0c;在springboot中&#xff0c;一般有两种使用方式&#xff1a; 直接通过RedisT…

helm部署相关服务过程中问题记录

在学习helm部署相关服务过程中出现一些相关问题&#xff0c;自己记录并供大家一起学习&#xff01;&#xff01;&#xff01; 【问题1】部署helm 获取软件包失败 在通过wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gz文件过程发现无法…

消息中间件的定义

中间件(middleware)是基础软件的一大类&#xff0c;属于可复用的软件范畴。中间件在操作系统软件&#xff0c;网络和数据库之上&#xff0c;应用软件之下&#xff0c;总的作用是为处于自己上层的应用软件提供运行于开发的环境&#xff0c;帮助用户灵活、高效的开发和集成复杂的…

【软考数据库】第二章 程序语言基础知识

目录 2.1 程序设计语言的基本概念2.2 程序设计语言的基本成分2.3 编译程序基本原理 前言&#xff1a; 笔记来自《文老师软考数据库》教材精讲&#xff0c;精讲视频在b站&#xff0c;某宝都可以找到&#xff0c;个人感觉通俗易懂。 2.1 程序设计语言的基本概念 程序设计语言是…

Nginx中的location规则与rewrite重写

location与rewrite的区别 rewrite &#xff1a;对访问的域名或者域名内的URL路径地址重写 location&#xff1a;对访问的路径做访问控制或者代理转发 从功能看 rewrite 和 location 似乎有点像&#xff0c;都能实现跳转&#xff0c;主要区别在于 rewrite 是在同一域名内更改获…

常见的3d bounding box标注工具

0. 简介 对于3d bounding box而言&#xff0c;近几年随着自动驾驶的火热&#xff0c;其标注工具也日渐多了起来&#xff0c;本篇文章不讲具体的算法&#xff0c;这里主要聚焦于这些开源的3d bounding box标注工具&#xff0c;以及他们是怎么使用的。这里借鉴了我想静静&#x…

牛客前端编程语言错题2

【语法】 名为“ctx”的变量是某个HTML5画布对象的上下文。以下代码绘制的是什么&#xff08;&#xff09; Ctx.arc(x,y,r,0,Math.PI,true); 在给定点绘制一个矩形 从一个点到另一个点绘制一条直线 在给定点绘制一个半圆 在给定点绘制一个圆 链接&#xff1a;https://www.now…

分布式系统反向代理设计与正向代理

反向代理与正向代理分析 代理服务器&#xff1a;位于发起请求的客户端与原始服务器端之间的一台跳板服务器&#xff0c;代理服务器分为正向代理服务器和反向代理服务器 正向代理 &#xff1a;代理客户端&#xff0c;隐藏了真实的请求客户端&#xff0c;服务端不知道真实的客户…

安全响应中心 — 垃圾邮件事件报告(4.18)

天空卫士安全响应中心邮件安全小组是成都研发中心的核心部门之一。在日常工作中&#xff0c;对大量样本进行分析并提取规则&#xff0c;实现对包含垃圾内容、钓鱼内容的邮件进行检测和隔离&#xff0c;从而抵御对业务电子邮件的入侵&#xff0c;防止钓鱼邮件等隐蔽邮件威胁。其…

9. 树的进阶

9. 树的进阶 ​ 之前我们学习过二叉查找树&#xff0c;发现它的查询效率比单纯的链表和数组的查询效率要高很多&#xff0c;大部分情况下&#xff0c;确实是这样的&#xff0c;但不幸的是&#xff0c;在最坏情况下&#xff0c;二叉查找树的性能还是很糟糕。 例如我们依次往二叉…

基于tensorflow2.x的多GPU并行训练

由于最近训练transformer&#xff0c;在单卡上显存不够&#xff0c;另外一块卡上也无法加载&#xff0c;故尝试使用双卡并行的策略。将基本的流程、遇见的难题汇总在这里。分布策略解释 使用官方给出的tf.distribute.MirroredStrategy作为分布策略。这个策略通过如下的方式运行…

Echarts渲染行政区划,实现聚焦高亮交互

首先需要准备行政区划的JSON数据&#xff0c;可以在DataV获取省市区的JSON数据。 最终效果图 渲染地图 建立一个地图容器&#xff0c;注意要给宽高 <!-- 地图容器 --> <div id"map"></div>请求JSON数据&#xff0c;渲染地图 $(function() {var …

Ubuntu 20版本将动态ip修改为静态ip时,ping 不通网络

问题描述&#xff1a; 在对Ubuntu 20版本将动态ip修改为静态ip时&#xff0c;ping www.baidu.com ping不通了 火狐浏览器没有了网路&#xff0c;下载不了东西 一直卡在这里不动 问题出在哪里还是配置ip dns 网关的问题 如果我们在当初安装ubuntu 时&#xff0c;将网络设置成…

24年专转本想要成功我们一个怎样做

23年转本报名人数创造高峰&#xff0c; 24年转本的同学们 如何脱颖而出&#xff0c;成功转本呢&#xff1f;一、明确转本目的 转本是一场重要的考试&#xff0c;有人把转本比喻为第二次高考。面对这唯一的进入本科院校学习的机会&#xff0c;考还是不考&#xff1f; 很多同…