力扣周赛310场题解

  • 前言
  • 6176. 出现最频繁的偶数元素
  • 6177. 子字符串的最优划分

前言

今天参加了力扣的第310场周赛,也是感觉到了这周的题的一个难度,有些题有想法,但是实际上让我去写的时候还是不知道该怎么下手,这周也算是对算法练习的一个总结吧,确实,赛场时间段内没AC出来一道,但是当下午自己再做的时候,很容易就AC了两道,剩下两道也是有点难度,正在研究,那今天就先分享两道吧,加油!


6176. 出现最频繁的偶数元素

给你一个整数数组 nums ,返回出现最频繁的偶数元素。

如果存在多个满足条件的元素,只需要返回 最小 的一个。如果不存在这样的元素,返回 -1 。

示例 1:

输入:nums = [0,1,2,2,4,4,1]
输出:2
解释:
数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。
返回最小的那个,即返回 2 。

示例 2:

输入:nums = [4,4,4,9,2,4]
输出:4
解释:4 是出现最频繁的偶数元素。

示例 3:

输入:nums = [29,47,21,41,13,37,25,7]
输出:-1
解释:不存在偶数元素。

提示:

1 <= nums.length <= 2000
0 <= nums[i] <= 105

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/most-frequent-even-element
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法:排序 + HashMap
排序,使数组有序,就算出现相同次数的偶数,返回的也是前面的,只需要比较出现的次数,如果相同就返回最小的即可。
使用Map来记录偶数出现的次数,同时也可以过滤奇数。最后筛选只需要使用map中的元素即可。

class Solution {public int mostFrequentEven(int[] nums) {Arrays.sort(nums); // 排序Map<Integer,Integer> map = new HashMap<>();for(int i : nums) {if(i % 2 == 0) {  // 过滤掉所有奇数map.put(i, map.getOrDefault(i, 0) + 1);}}int res = -1,max = Integer.MIN_VALUE;for (Integer key : map.keySet()) {int value = map.get(key);if (value > max) { // 如果出现次数大于前一个出现的次数// 更新记录max = value;res = key;} else if (value == max) {// 如果出现次数相等,那么取最小的元素res = Math.min(res,key);}}return res;}
}

6177. 子字符串的最优划分

给你一个字符串 s ,请你将该字符串划分成一个或多个 子字符串 ,并满足每个子字符串中的字符都是 唯一 的。也就是说,在单个子字符串中,字母的出现次数都不超过 一次 。
满足题目要求的情况下,返回 最少 需要划分多少个子字符串。
注意,划分后,原字符串中的每个字符都应该恰好属于一个子字符串。
示例 1:

输入:s = "abacaba"
输出:4
解释:
两种可行的划分方法分别是 ("a","ba","cab","a") 和 ("ab","a","ca","ba") 。
可以证明最少需要划分 4 个子字符串。

示例 2:

输入:s = "ssssss"
输出:6
解释:
只存在一种可行的划分方法 ("s","s","s","s","s","s") 。
提示:
1 <= s.length <= 105
s 仅由小写英文字母组成

解法一:Set集合 + 一次遍历
我们可以使用Set集合来决定一个子串是否含有重复的字符。

class Solution {public int partitionString(String s) {char[] chars = s.toCharArray();Set<Character> set = new HashSet<>();// 这里初始化为1是因为,如果最后一次没有重复的字符的话// 不会执行if里面的逻辑int count = 1;for(int i = 0; i < chars.length; i++) {// 如果添加失败,说明重复if(!set.add(chars[i])) {// 清空set集合set.clear();// 将当前字符加入set集合set.add(chars[i]);// 次数 + 1count++;}}return count;}
}

力扣周赛310场题解相关推荐

  1. 力扣周赛337场 第一题6319.奇偶位数

    #include<stdio.h> #include<math.h> void binary(int num); int i=0,j,arr[32]={0}; int main ...

  2. 20210530:力扣第53场双周赛题解

    力扣第53场双周赛题解 题目 思路与算法 代码实现 写在最后 题目 长度为三且各字符不同的子字符串 数组中最大数对和的最小值 矩阵中最大的三个菱形和 思路与算法 长度为三且各字符不同的子字符串:遍历查 ...

  3. 20201015:力扣第210场周赛题解(上)

    力扣第210场周赛题解上 题目 思路与算法 代码实现 写在最后 题目 括号的最大嵌套深度 最大网络秩 思路与算法 第一题典型的栈数据结构求最大栈长的题目 第二题是一个经典的出入度题目,本题更加简单,统 ...

  4. 20220219:力扣第72场双周赛题解

    力扣第72场双周赛 题目 思路与算法 代码实现 写在最后 题目 统计数组中相等且可以被整除的数对 找到和为给定整数的三个连续整数 拆分成最多数目的偶整数之和 统计数组中好三元组数目 思路与算法 前三题 ...

  5. 20201125:力扣第216场周赛(下)

    力扣第216场周赛(下) 题目 思路与算法 代码实现 写在最后 题目 生成平衡数组的方案数 完成所有任务的最少初始能量 思路与算法 第一题 删除的索引为i,删除之后(0- i-1)之间的子数组的奇偶和 ...

  6. 20201023:力扣第37场双周赛(上)

    力扣第37场双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 删除某些元素后的数组均值 网络信号最好的坐标 思路与算法 第二题直接暴力就可以了,计算每个点的所有偏移量存入list,即以(0,0 ...

  7. 第 256 场力扣周赛(状态压缩+dp,二进制子序列的动规、940)

    第 256 场力扣周赛 有事没做,来看一下题 5854. 学生分数的最小差值 题目描述 给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数.另给你一个整 ...

  8. 20220307:力扣第283场周赛(上)

    力扣第283场周赛(上) 题目 思路与算法 代码实现 写在最后 题目 Excel 表中某个范围内的单元格 向数组中追加 K 个整数 思路与算法 第一题直接模拟即可,注意作为char的数字也是可以直接自 ...

  9. 20220228:力扣第282场周赛(下)

    力扣第282场周赛(下) 题目 思路与算法 代码实现 写在最后 题目 完成旅途的最少时间 完成比赛的最少时间 思路与算法 完成旅途的最少时间: 二分模板题,注意初始化左右边界的话,速度会提升很多. 完 ...

最新文章

  1. android xUtils的使用
  2. java中引用类型_您真的了解Java中的4种引用类型吗?
  3. JVM加载class文件的原理机制
  4. squid反向代理(实现缓存)加速web
  5. C++ Vector 汇总
  6. c++ 服务 以当前用户拉起进程_渗透技巧——通过CredSSP导出用户的明文口令
  7. python拆开tuple为多个值传入函数(tuple拆包)
  8. V-rep学习笔记:机器人逆运动学数值解法(Damped Least Squares / Levenberg-Marquardt Method)...
  9. php中的echo单引号_PHP 邮件漏洞小结
  10. JQuery Mobile - 固定住页面和页脚
  11. Visio做图时背景有虚线
  12. 【HTML基础】第一课、Web前端的概述
  13. [翻译] Anders Hejlsberg访谈录——Geek of the Week
  14. 【笔记】linux下查看文件夹大小
  15. [可视化] 点云可视化工具open3d的使用
  16. java读取pdf三维图片_java 读取PDF文件生成图片形式
  17. LCP 02. 分式化简
  18. 笑话(4) 猪八戒的最后情书
  19. 软件过程-喷泉模型和统一过程模型RUP
  20. Matlab安装下载的工具箱

热门文章

  1. centos linux开机启动项,Centos 配置开机启动项
  2. 存储ic载板_IC载板工艺
  3. 5.22非常虚伪的集训总结
  4. Shader --- 法阵
  5. 基于单片机的超市储物柜设计_一种基于at89c51单片机的超市寄存装置的制造方法...
  6. 会议室可以使用全彩LED显示屏吗?
  7. 鸿蒙手游——数字华容道
  8. 准备工作(正则表达式学习)
  9. 运用BFS算法实现北京地铁路线换乘系统
  10. R语言学习二——工具的使用