获得徽章 16
#刷题交流# 打卡第十四天:[组成字符串ku的的最大发个数]
由于题目中明确提到字符大小写不敏感,我们可以将整个字符串转换为小写字母,这样就不需要区分大小写。由于我们只关心字符 "k" 和 "u" 的个数,可以直接统计这两个字符在字符串中出现的次数。字符 "k" 和 "u" 是组成 "ku" 字符串的关键,因此只需要统计它们的出现频率。每个 "ku" 字符串需要一个 "k" 和一个 "u",因此我们能组成的最大 "ku" 字符串的个数,必定是 "k" 和 "u" 的数量中的较小值。也就是:maxKU = min(count('k'), count('u'))
由于题目中明确提到字符大小写不敏感,我们可以将整个字符串转换为小写字母,这样就不需要区分大小写。由于我们只关心字符 "k" 和 "u" 的个数,可以直接统计这两个字符在字符串中出现的次数。字符 "k" 和 "u" 是组成 "ku" 字符串的关键,因此只需要统计它们的出现频率。每个 "ku" 字符串需要一个 "k" 和一个 "u",因此我们能组成的最大 "ku" 字符串的个数,必定是 "k" 和 "u" 的数量中的较小值。也就是:maxKU = min(count('k'), count('u'))
展开
评论
点赞
#刷题交流# 打卡第八天:[找出整型数组中占比超过一半的数]
两次遍历,第一次遍历,我们维护一个候选数字 candidate 和计数器 count,初始时候 candidate 为 null,count 为 0。遍历数组中的每个数字:如果 count 为 0,就将当前数字设为候选元素 candidate,并将 count 设置为 1。如果当前数字和候选元素 candidate 相同,增加 count。如果当前数字和候选元素 candidate 不同,减少 count。通过这种方式,我们最终会得到一个可能的候选元素,它可能是多数元素。我们再遍历一次数组,计算候选元素出现的次数,如果它出现的次数超过数组长度的一半,就返回它;否则返回 null,表示没有找到超过一半的元素。
两次遍历,第一次遍历,我们维护一个候选数字 candidate 和计数器 count,初始时候 candidate 为 null,count 为 0。遍历数组中的每个数字:如果 count 为 0,就将当前数字设为候选元素 candidate,并将 count 设置为 1。如果当前数字和候选元素 candidate 相同,增加 count。如果当前数字和候选元素 candidate 不同,减少 count。通过这种方式,我们最终会得到一个可能的候选元素,它可能是多数元素。我们再遍历一次数组,计算候选元素出现的次数,如果它出现的次数超过数组长度的一半,就返回它;否则返回 null,表示没有找到超过一半的元素。
展开
评论
3
#刷题交流# 打卡第五天:[寻找最大葫芦]
统计每个牌面值的出现次数,使用一个字典来记录每个牌面值的出现次数。这个字典的键是牌面值,值是该牌面值出现的次数。构造所有可能的“葫芦”组合,“葫芦”要求有三张相同的牌和两张相同的牌。因此,需要遍历所有牌面值的组合,查找符合条件的组合。为了符合“葫芦”的规则,必须有至少 3 张相同面值的牌和至少 2 张相同面值的牌组成 。这样我们可以通过遍历所有的牌面值,寻找满足上述条件的组合。
过滤合法的组合,对于每一组合法的“葫芦”组合,我们需要计算其总和。如果总和不超过给定的 max,则认为该组合是合法的。比较所有合法的组合,找到所有合法的“葫芦”组合后,我们需要从中选择最大的一组。牌面值的比较规则是,首先比较三张相同牌的面值(a),如果相同则比较两张相同牌的面值(b)。因此,我们需要对合法的组合按照(a, b)进行排序。如果找到了合法的组合,返回其中最优的组合(即最大的组合)。
统计每个牌面值的出现次数,使用一个字典来记录每个牌面值的出现次数。这个字典的键是牌面值,值是该牌面值出现的次数。构造所有可能的“葫芦”组合,“葫芦”要求有三张相同的牌和两张相同的牌。因此,需要遍历所有牌面值的组合,查找符合条件的组合。为了符合“葫芦”的规则,必须有至少 3 张相同面值的牌和至少 2 张相同面值的牌组成 。这样我们可以通过遍历所有的牌面值,寻找满足上述条件的组合。
过滤合法的组合,对于每一组合法的“葫芦”组合,我们需要计算其总和。如果总和不超过给定的 max,则认为该组合是合法的。比较所有合法的组合,找到所有合法的“葫芦”组合后,我们需要从中选择最大的一组。牌面值的比较规则是,首先比较三张相同牌的面值(a),如果相同则比较两张相同牌的面值(b)。因此,我们需要对合法的组合按照(a, b)进行排序。如果找到了合法的组合,返回其中最优的组合(即最大的组合)。
展开
评论
1