🌾 吃掉所有谷子的最短时间
📝 题目描述
一条线上有n
只母鸡和m
颗谷子。给定两个整数数组hens
和grains
,它们的大小分别是n
和m
,表示母鸡和谷子的初始位置。
如果一只母鸡和一颗谷子在同一个位置,那么这只母鸡可以吃掉这颗谷子。吃掉一颗谷子的时间可以忽略不计。一只母鸡也可以吃掉多颗谷子。
在1
秒钟内,一只母鸡可以向左或向右移动1
个单位。母鸡可以同时且独立地移动。
如果母鸡行动得当,返回吃掉所有谷子的最短时间。
📋 代码模板
java
class Solution {
public int minimumTime(int[] hens, int[] grains) {
}
}
💡 提示
🚀 示例
🖊️ 题解
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;
}
}
💭 复杂度分析
基于哈希表
的解决方案的复杂度分析如下。
- 时间复杂度:
,其中 为字符串 的长度, 为字符串 的长度。 - 空间复杂度:
,其中 为26,即全部小写英文字母的数量。