LeetCode 第 53 场双周赛(一)

简介: LeetCode 第 53 场双周赛(一)

大家好,这里是一起打 Leetcode 竞赛系列文章的第 5 篇。

本周有周赛和双周赛,本文是对上午的双周赛 Biweekly Contest 53 的简单讲解和评论。以下会包括每一题的简单讲解,代码,难度分析,以及一些个人对这题的看法等,希望大家喜欢!

注意 : 题解并不一定都是最优解(代码以 pass 了 LeetCode 的 Oline Judge 为准),文章初衷是给读者们提供一定的想法和问题的解决方案。

前言 : 参加 Contest 的好处

  1. 每周抽点时间去练习和学习新的题目这对于个人的编程能力与问题解决能力都有很大的帮助。
  2. 在规定的时间内解决一定的题目,这和真实的OA (Online Assessment) 或者 Onsite 面试是一样的,可以把它当作一个很好的 Mock 练习机会。
  3. 当你有碰到做不出的题目的时候,你能知道自己的弱项在哪里,然后可以根据这进行加强和练习,比赛是一面给自己的镜子。

对本场比赛的一些看法

本场比赛难度相对比较正常,都是比较常规的题目,第三题稍微有点难度需要一点思考。

1876. 简单的暴力签到题1877. 一道贪心和双指针题目1878. 一道观察型的题目1879. 使用 bit 进行压缩的DP题目


1876 Substrings of Size Three with Distinct Characters

题意:

给你一个字符串,对于这个字符串每个长度为3的子字符串,如果此子字符串没有重复的字母它就是好的,问有多少个好的子字符串?例子:xyzzaz : xyz,yzz,zza,zaz这里只有 xyz 是好的

思路:

  1. 对于每个子字符串看看他们有没有重复的即可,为了方便可以直接使用Set,如果Set的size是3,它就是好的

代码:

classSolution {

 publicintcountGoodSubstrings(Strings) {

   intres=0;

   for (inti=0; i<s.length() -2; i++) {

     Set<Character>set=newHashSet<> ();

     //以 i 作为子字符串的开头,子字符串是 S[i,i+2]

     set.add(s.charAt(i));

     set.add(s.charAt(i+1));

     set.add(s.charAt(i+2));

     if (set.size() ==3) res++;

   }

   returnres;

 }

}

空间复杂度和时间复杂度:

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)
目录
相关文章
【2022天梯赛】L1-8 静静的推荐
【2022天梯赛】L1-8 静静的推荐
|
7月前
Leetcode第123场双周赛
在LeetCode的第123场双周赛中,参赛者需解决三个问题。第一题涉及根据给定数组构建三角形并判断其类型,如等边、等腰或不等边,代码实现通过排序简化条件判断。第二题要求找出满足差值为k的好子数组的最大和,解决方案利用前缀和与哈希表提高效率。第三题则需要计算点集中满足特定条件的点对数量,解题策略是对点按坐标排序并检查点对是否满足要求。
27 1
【2022天梯赛】L1-7 机工士姆斯塔迪奥
【2022天梯赛】L1-7 机工士姆斯塔迪奥
【Leetcode】- 第 29 场双周赛
【Leetcode】- 第 29 场双周赛
|
7月前
【周赛总结】17-双周赛108
【周赛总结】17-双周赛108
56 0
|
7月前
|
机器学习/深度学习
【周赛总结】双周赛109
【周赛总结】双周赛109
53 0
|
7月前
|
存储 算法 程序员
【Zilliz专场】力扣第 271 场周赛复盘
【Zilliz专场】力扣第 271 场周赛复盘
|
存储 数据安全/隐私保护
|
机器学习/深度学习 人工智能 算法
LeetCode 双周赛 99,纯纯送分场!
昨晚是 LeetCode 第 99 场双周赛,你参加了吗?这场周赛整体难度很低,第 4 题评论区普遍认为是 1 字头,纯纯手速场。
134 0