生成每种字符都是奇数个的字符串&灯泡开关 III

  • 题目
  • 思路与算法
  • 代码实现
  • 复杂度分析

题目



思路与算法

  1. 第一题没什么难度,StringBuilder拼接即可
  2. 第二题一开始想复杂了,用了HashSet进行判断,结果还超时了,后面开窍想到了简单的办法,精髓是:当开的灯的数目和当前开灯时刻的最大值相等时,此时满足全蓝的要求。结束

代码实现

5352:生成每种字符都是奇数个的字符串

class Solution {public String generateTheString(int n) {if(n == 1){return "a";}else if(n % 2 == 0){StringBuilder sb1 = new StringBuilder();for ( int i = 0 ;i < n-1;i++){sb1.append('a');}sb1.append('b');return sb1.toString();} else {StringBuilder sb = new StringBuilder();for ( int i = 0 ;i < n-2;i++){sb.append('a');}sb.append('b'); sb.append('c'); return sb.toString();}     }
}

5353:灯泡开关 III
法一:超时

package com.immunize.leetcode.numTimesAllBlue;import java.util.HashSet;/*** TLE* * @author Mr IMMUNIZE**/
public class Solution {public int numTimesAllBlue(int[] light) {int count = 0;int count1 = 0;int len = light.length;int[] mark = new int[len];HashSet<Integer> set = new HashSet<>();for (int i = 0; i < len; i++) {set.add(light[i]);for (int j = 1; j <= i + 1; j++) {if (set.contains(j)) {count1++;}}if (count1 == i + 1) {mark[i] = 1;} else {mark[i] = -1;}count1 = 0;}for (int k = 0; k < len; k++) {if (mark[k] == 1) {count++;}}return count;}
}

法二:过

package com.immunize.leetcode.numTimesAllBlue;/*** 过* * @author Mr IMMUNIZE**/
public class Solution2 {public int numTimesAllBlue(int[] light) {int count1 = 0;int count2 = 0;int max = 0;for (int i = 0; i < light.length; i++) {count1 = i + 1;max = Math.max(max, light[i]);if (max == count1) {count2++;}}return count2;}
}

复杂度分析

超时的复杂度为O(N²)
没超时的都是一遍遍历:O(N)

20200308: 生成每种字符都是奇数个的字符串灯泡开关 III(leetcode5352-5353)相关推荐

  1. LeetCode 5352. 生成每种字符都是奇数个的字符串

    5352. 生成每种字符都是奇数个的字符串 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目 ...

  2. LeetCode 1374.生成每种字符都是奇数个的字符串

    [LetMeFly]1374.生成每种字符都是奇数个的字符串 力扣题目链接:https://leetcode.cn/problems/generate-a-string-with-characters ...

  3. LeetCode简单题之生成每种字符都是奇数个的字符串

    题目 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目要求的字符串,则返回其中任意一个即可. ...

  4. 1374 生成每种字符都是奇数个的字符串

    题目描述: 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目要求的字符串,则返回其中任意一个 ...

  5. 【字符串】生成每种字符都是奇数个的字符串

    题目描述 给定一个整数n,请返回长度为n的字符串,并且其中每种字符在该字符串中出现次数都是奇数次:要求返回的是小写英文字母,如果有多个答案,只返回其中一种就可以. 示例1: 输入:n=4 输出:&qu ...

  6. LeetCode 1374. 生成每种字符都是奇数个的字符串

    1. 题目 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目要求的字符串,则返回其中任意一个 ...

  7. 【字符串】1374. 生成每种字符都是奇数个的字符串(简单)

    [题目] 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目要求的字符串,则返回其中任意一个即 ...

  8. python获得奇数的字符串_生成每种字符都是奇数个的字符串

    题目: 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目要求的字符串,则返回其中任意一个即可 ...

  9. 力扣-生成每种字符都是奇数个的字符串

    题目描述 给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 . 返回的字符串必须只含小写英文字母.如果存在多个满足题目要求的字符串,则返回其中任意一个即 ...

最新文章

  1. pandas使用replace函数将所有的无穷大值np.inf替换为缺失值np.nan、使用pandas的fillna函数用经验固定值填充缺失值np.nan
  2. angular2.0学习日记1
  3. 【转】chrome浏览器的跨域设置——包括版本49前后两种设置
  4. 【转】Dubbo架构设计详解
  5. 写直通与访存次数计算问题
  6. 1、安装Lync Server 2013前的准备工作
  7. Kafka实战之整合Flume和Kafka完成实时数据采集
  8. DOS windows PE三者有什么区别
  9. 使用mentohust解决ubuntu下校园网无法连接
  10. OpenCV—Python 导向滤波
  11. PMP-强化练习题一(180题答案及解析)
  12. 形容人的内核是什么意思_【得到】人人都需要的精准表达术-老光
  13. Consul + fabio 实现自动服务发现、负载均衡 - DockOne.io
  14. 理解C语言中的a++、a--和++a、--a
  15. Rounding necessary
  16. 转载——神经网络中mAP相关概念
  17. 深信服行为感知命令执行漏洞
  18. 如何判断linux使用的是HDD还是SSD、HHD;磁盘阵列RAID
  19. html文字段落设置,css中怎么设置段落样式?
  20. 腾讯、阿里、华为等各大互联网公司年终奖到底发了多少?

热门文章

  1. 5G 到底是不是伪需求?
  2. 2018 OpenInfra Days China 大咖来袭——开源,我们是认真的
  3. 甲骨文被曝服务器漏洞,攻击者窃获 22.6 万美元加密货币
  4. JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?
  5. JAVA day04 数组排序,类和对象
  6. 第 20 章 观察者模式
  7. 第 10 章 对象的实例化内存布局与访问定位
  8. wireshark抓包分析 --https
  9. c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)...
  10. python实现食品推荐_Python分析亚马逊赞不绝口食物评论