输入单词需要的最少按键次数 II

发布时间:2024年01月24日

题目链接

输入单词需要的最少按键次数 II

题目描述



注意点

  • word 仅由小写英文字母组成

解答思路

  • 找了最少按键次数的关键是找到每个字符出现的次数以及将出现更频繁的字符排在按键的前方(按键次数更少),因为word 仅由小写英文字母组成,所以只需要使用大小为26的数组就能存储字符串中所有字符及出现次数,随后对数组进行排序,以8个字符为一组,按键次数由1,2…,k,将每个字符需要的按键次数相加就是结果

代码

class Solution {
    public int minimumPushes(String word) {
        int res = 0;
        int[] frequency = new int[26];
        for (int i = 0; i < word.length(); i++) {
            char c = word.charAt(i);
            frequency[c - 'a']++;
        }
        Arrays.sort(frequency);
        for (int i = 25; i >= 0; i--) {
            if (frequency[i] == 0) {
                break;
            }
            res = res + frequency[i] * ((25 - i) / 8 + 1);
        }
        return res;
    }
}

关键点

文章来源:https://blog.csdn.net/weixin_51628158/article/details/135813921
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。