【LeetCode:2103. 环和杆 | 模拟】

这篇具有很好参考价值的文章主要介绍了【LeetCode:2103. 环和杆 | 模拟】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数

【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数

🚩 题目链接

  • 2103. 环和杆

⛲ 题目描述

总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。

给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环:

第 i 对中的 第一个 字符表示第 i 个环的 颜色(‘R’、‘G’、‘B’)。
第 i 对中的 第二个 字符表示第 i 个环的 位置,也就是位于哪根杆上(‘0’ 到 ‘9’)。
例如,“R3G2B1” 表示:共有 n == 3 个环,红色的环在编号为 3 的杆上,绿色的环在编号为 2 的杆上,蓝色的环在编号为 1 的杆上。

找出所有集齐 全部三种颜色 环的杆,并返回这种杆的数量。

【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数
【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数

示例 3:

输入:rings = “G4”
输出:0
解释:
只给了一个环,因此,不存在集齐全部三种颜色环的杆。

提示:

rings.length == 2 * n
1 <= n <= 100
如 i 是 偶数 ,则 rings[i] 的值可以取 ‘R’、‘G’ 或 ‘B’(下标从 0 开始计数)
如 i 是 奇数 ,则 rings[i] 的值可以取 ‘0’ 到 ‘9’ 中的一个数字(下标从 0 开始计数)

🌟 求解思路&实现代码&运行结果


⚡ 模拟

🥦 求解思路
  1. 题目让我们统计每一个杆上都有三种颜色环的杆子的数量。
  2. 所以,我们可以开辟3个同样大小的数组,统计每个杆子上对应的不同颜色的环的数量。最后,如果每个位置上3个环的数量都大于0,那么最终的答案+1。遍历结束,返回最终的结果即可。
  3. 实现代码如下。
🥦 实现代码
class Solution {
    public int countPoints(String rings) {
        int[] r=new int[10],g=new int[10],b=new int[10];
        int num=0;
        char[] ans=rings.toCharArray();
        for(int i=0;i<ans.length;i+=2){
            int index=ans[i+1]-'0';
            if(ans[i]=='R'){
                r[index]++;
            }else if(ans[i]=='G'){
                g[index]++;
            }else{
                b[index]++;
            }
        }
        for(int i=0;i<10;i++){
            if(r[i]!=0&&g[i]!=0&&b[i]!=0) num++;
        }
        return num;
    }
}
🥦 运行结果

【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数

【LeetCode:2103. 环和杆 | 模拟】,LeetCode每日一题打卡,leetcode,算法,java,模拟,计数文章来源地址https://www.toymoban.com/news/detail-741518.html

到了这里,关于【LeetCode:2103. 环和杆 | 模拟】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 2023年7月3日leetcode每日一题打卡——136.只出现一次的数字

    136. 只出现一次的数字 - 力扣(LeetCode) 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现 线性时间复杂度 的算法来解决此问题,且该算法 只使用常量额外空间 。 示例1: 示例2: 示

    2024年02月12日
    浏览(10)
  • 【Leetcode每日一题】模拟 - 数青蛙(难度⭐⭐)(54)

    【Leetcode每日一题】模拟 - 数青蛙(难度⭐⭐)(54)

    1. 题目解析 题目链接:1419. 数青蛙 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、模拟青蛙叫声的基本逻辑 在模拟青蛙叫声的过程中,我们需要遵循一定的规则来判断何时青蛙会发出声音。具体规则如下: 当遇到字符序列 \\\'r\\\'、

    2024年04月11日
    浏览(6)
  • LeetCode·每日一题·2544. 交替数字和·模拟

    LeetCode·每日一题·2544. 交替数字和·模拟

    作者:小迅 链接:https://leetcode.cn/problems/alternating-digit-sum/solutions/2341276/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-7fjq/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。     题意 - 给定一个数字,将数字按位分解,按最高位取 +,之后

    2024年02月15日
    浏览(8)
  • LeetCode·每日一题·415. 字符串相加·模拟

    LeetCode·每日一题·415. 字符串相加·模拟

    作者:小迅 链接:https://leetcode.cn/problems/add-strings/solutions/2347085/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-fges/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   题意 - 给定二个字符串,计算它们的和并同样以字符串形式返回。 直接从

    2024年02月16日
    浏览(10)
  • 【Py/Java/C++三种语言详解】LeetCode每日一题240123【模拟】LeetCode2765、最长交替子数组

    LeetCode2765、最长交替子数组 给你一个下标从 0 开始的整数数组 nums 。如果 nums 中长度为 m 的子数组 s 满足以下条件,我们称它是一个 交替子数组 : m 大于 1 。 s(1) = s(0) + 1 。 下标从 0 开始的子数组 s 与数组 [s(0), s(1), s(0), s(1),...,s((m-1) % 2)] 一样。也就是说, s(1) - s(0) = 1 ,

    2024年01月24日
    浏览(8)
  • leetcode每日一题44

    图论 dfs/bfs dfs代码框架 思路:本题要求找到被x围绕的陆地,所以边界的陆地O肯定不符合条件。那么我们只要从周边找到陆地O然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地O都变成A,然后再去重新遍历地图的时候,把剩下的O变成X,再把所有的A变成O。 确认递归函数,参数

    2024年01月19日
    浏览(15)
  • 【LeetCode】每日一题:移除元素

    【LeetCode】每日一题:移除元素

    目录  题目: 思想1:暴力解法 思想2:创建一个temp数组  思想3:双指针 👻内容专栏:《LeetCode刷题专栏》 🐨本文概括: 27.移除元素 🐼本文作者:花 碟 🐸发布时间:2023.4.15 https://leetcode.cn/problems/remove-element/   点击跳转到LeetCode平台OJ页面(27.移除元素)  👉 示例1: 解

    2023年04月19日
    浏览(14)
  • 每日一题:leetcode 57 插入区间

    给你一个  无重叠的  , 按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 提示: 0 = intervals.length = 104 intervals[i].length == 2 0 = int

    2024年02月11日
    浏览(13)
  • Leetcode每日一题——“移除元素”

    Leetcode每日一题——“移除元素”

    各位CSDN的uu们你们好呀,小雅兰又来啦,今天,小雅兰的内容是移除元素,下面,让我们进入Leetcode的世界吧   说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 你可以

    2023年04月23日
    浏览(5)
  • leetcode每日一题:62. 不同路径

    leetcode每日一题:62. 不同路径

    系列:动态规划 语言:java 难度:中等 题目来源:Leetcode62. 不同路径 开启动态规划章节了!!欢迎您在留言和我一起完成每日打卡,以后每天8点半前发布每日一题。 原题链接:Leetcode62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )

    2023年04月22日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包