Skip to content

🌾 吃掉所有谷子的最短时间

📝 题目描述

​ 一条线上有n只母鸡和m颗谷子。给定两个整数数组hensgrains,它们的大小分别是nm,表示母鸡和谷子的初始位置。

​ 如果一只母鸡和一颗谷子在同一个位置,那么这只母鸡可以吃掉这颗谷子。吃掉一颗谷子的时间可以忽略不计。一只母鸡也可以吃掉多颗谷子。

​ 在1秒钟内,一只母鸡可以向左或向右移动1个单位。母鸡可以同时且独立地移动。

​ 如果母鸡行动得当,返回吃掉所有谷子的最短时间。

📋 代码模板

java
class Solution {
    public int minimumTime(int[] hens, int[] grains) {

    }
}

💡 提示

  1. 1hens.length2104
  2. 1grains.length2104
  3. 0hens[i]109
  4. 0grains[i]109

🚀 示例

image-20240508173032432

🖊️ 题解

java
class Solution {
    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) {
            return false;
        }
        int[] cmt = new int[26];
        for (char c : s.toCharArray()) {
            cmt[c - 'a']++;
        }
        for (char c : t.toCharArray()) {
            if (--cmt[c - 'a'] < 0) {
                return false;
            }
        }
        return true;
    }
}

💭 复杂度分析

​ 基于哈希表的解决方案的复杂度分析如下。

  • 时间复杂度:O(n+m),其中 n 为字符串 s 的长度,m 为字符串 t 的长度。
  • 空间复杂度:O(C),其中 C 为26,即全部小写英文字母的数量。

上次更新于: