首页 > 其他分享 >LeetCode 3014[输入单词需要的最少按键次数I]

LeetCode 3014[输入单词需要的最少按键次数I]

时间:2024-11-09 16:29:46浏览次数:1  
标签:26 每个 16 int 字母 3014 按键 LeetCode 14

题目

链接

LeetCode 3014[输入单词需要的最少按键次数I]

详情

实例

实例1

实例2

提示

题解

思路

一圈下来8个字母,每个字母按1次

二圈下来16个字母,前8个字母每个按1次,后8个字母,每个按2次

三圈下来24个字母,前8个字母每个按1次,中间8个字母,每个按2次,最后8个字母,每个按3次

四圈下来26个字母全包括,前8个字母每个按1次,中间8个字母,每个按2次,最后8个字母,每个按3次,剩余2个字母,每个按4次

 

例如1:(14个字母)

需要按1个整圈 (14 / 8 = 1)

第一圈按8个字母,每个按一次,共8次

第二圈按剩下的6个字母(14 % 8),每个按2次,共2 * 6 = 12 次

总共:(14 % 8) * (14 / 8 + 1) + 8 * 1 = 6 * (1 + 1) + 8 * 1 = 20 次

 

例如2:(16个字母)

需要按2个整圈(16 / 8 = 2)

第一圈按8个字母,每个按一次,共8次

第二圈按8个字母,每个按2次,共2 * 8 = 16 次

总共:(16 % 8) * (16 / 8 + 1) + 8 * 1 + 8 * 2 = 0 * (2 + 1) + 8 * 1 + 8 * 2 = 24 次

 

例如3:(26个字母)

需要按3个整圈 (26 / 8 = 3)

第一圈按8个字母,每个按一次,共8次

第二圈按8个字母,每个按2次,共2 * 8 = 16 次

第三圈按8个字母,每个按3次,共3 * 8 = 24 次

第四圈按2个字母(26 % 8),每个按4次,共 2 * 4 = 8 次

总共:(26 % 8) * (26 / 8 + 1) + 8 * 1 + 8 * 2 + 8 * 3 = 2 * (3 + 1) + 8 * 1 + 8 * 2 + 8 * 3 = 56 次

代码

class Solution {
public:
    int minimumPushes(string word) {
        
        size_t iSize = word.size();
        int n = iSize / 8;
        int iRet = (n + 1) * (iSize % 8);
        
        for (int i = 0; i < n ; i++)
            iRet += 8 * (i + 1);
        
        return iRet;
    }
};

标签:26,每个,16,int,字母,3014,按键,LeetCode,14
From: https://www.cnblogs.com/EricsT/p/18536946

相关文章

  • LeetCode128 最长连续序列
    最长连续序列题目链接:LeetCode128描述给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。示例输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它......
  • LeetCode 171[Excel表列序号]
    题目链接LeetCode171[Excel表列序号]详情实例提示题解思路这其实是一道26进制的算术题其中A的权重为1,B的权重为2,C的权重为3,D的权重为4,E的权重为5,F的权重为6,G的权重为7H的权重为8,I的权重为9,J的权重为10,K的权重为11,L的权重为12,M的权重为13N的权重为14,O的权重为15,P的......
  • LeetCode100之旋转图像(48)--Java
    1.问题描述  给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转90度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。        示例1输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]......
  • LeetCode100之买卖股票的最佳时机含冷冻期(309)--Java
    1.问题描述   给定一个整数数组prices,其中第  prices[i] 表示第 i 天的股票价格。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票(即冷冻期为1天)。        注意......
  • Leetcode 每日一题 135.分发糖果
    问题描述给定一个整数数组ratings,表示一排孩子的评分。我们需要按照以下规则给孩子们分发糖果:每个孩子至少得到1个糖果。相邻两个孩子中,评分更高的孩子会得到更多的糖果。我们的目标是计算出按照这些规则分发糖果所需的最少糖果数。输入输出格式输入:一个整数数组 rating......
  • Leetcode 474 dp数组讲解和滚动数组优化
    474.一和零​ ​dp[i][w1][w2]:DP数组的集合:考虑前i个物品包括第i个,满足背包重量不超过[w1][w2]的所有集合把输入数组中的每个string当作是一个物品,其重量分别为string中0和1的个数属性:价值每个物品的价值是1因为我们求最大子集的个数,一个字符串对子集个数贡献的......
  • Intern大模型训练营(二):leetcode习题+Vscode连接InternStudio debug
    1.Leetcode383:思路:使用两个数组存储两个字符串中出现的字符,然后一一比较数量。classSolution:defcanConstruct(self,ransomNote:str,magazine:str)->bool:cnta=[0]*26cntb=[0]*26forcinransomNote:cnta[or......
  • Leetcode 3235. 判断矩形的两个角落是否可达
    1classSolution{2public:3boolcanReachCorner(intxCorner,intyCorner,vector<vector<int>>&circles){4vector<bool>visited(circles.size(),false);56function<bool(int)>dfs=[&](inti)......
  • 代码随想录算法训练营第二十一天| leetcode669. 修剪二叉搜索树、leetcode108.将有序
    1leetcode669.修剪二叉搜索树题目链接:669.修剪二叉搜索树-力扣(LeetCode)文章链接:代码随想录视频链接:你修剪的方式不对,我来给你纠正一下!|LeetCode:669.修剪二叉搜索树_哔哩哔哩_bilibili思路:目前想的是分三种情况,第一种情况就是这个数删除左边全部,第二种删除右边的全部,第......
  • 代码随想录算法训练营第二十天|leetcode235. 二叉搜索树的最近公共祖先、leetcode701.
    1leetcode235.二叉搜索树的最近公共祖先题目链接:235.二叉搜索树的最近公共祖先-力扣(LeetCode)文章链接:代码随想录视频链接:二叉搜索树找祖先就有点不一样了!|235.二叉搜索树的最近公共祖先_哔哩哔哩_bilibili思路:用之前一样的方法,哈哈哈哈哈,好处就是做出来了,但是我觉得需......