2023-06-14 LeetCode每日一题(二进制字符串前缀一致的次数)

这篇具有很好参考价值的文章主要介绍了2023-06-14 LeetCode每日一题(二进制字符串前缀一致的次数)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023-06-14每日一题

一、题目编号

1375. 二进制字符串前缀一致的次数

二、题目链接

点击跳转到题目位置

三、题目描述

给你一个长度为 n 、下标从 1 开始的二进制字符串,所有位最开始都是 0 。我们会按步翻转该二进制字符串的所有位(即,将 0 变为 1)。

给你一个下标从 1 开始的整数数组 flips ,其中 flips[i] 表示对应下标 i 的位将会在第 i 步翻转。

二进制字符串 前缀一致 需满足:在第 i 步之后,在 闭 区间 [1, i] 内的所有位都是 1 ,而其他位都是 0 。

返回二进制字符串在翻转过程中 前缀一致 的次数。

提示:

  • n == flips.length
  • 1 <= n <= 5 * 104
  • flips 是范围 [1, n] 中所有整数构成的一个排列

四、解题代码

class Solution {
public:
    int numTimesAllBlue(vector<int>& flips) {
        int n = flips.size();
        int max_flag = 0;
        int cnt = 0;
        for(int i = 0; i < n; ++i){
            max_flag = max(flips[i], max_flag);
            if(i + 1 == max_flag){
                ++cnt;
            }
        }
    return cnt;
    }
};

五、解题思路

(1) 我们所要遍历的就是flips的数组,每次翻转的是将0变成1.我们要判断1~i全是1,只需要判断是否最高翻转的位置是否是等于总的遍历的数目。

(2) 举一个flips = [3,2,4,1,5]。一开始是00000。
翻转1个字符后,翻转的最高位是3
翻转2个字符后,翻转的最高位是3
翻转3个字符后,翻转的最高位是4
翻转4个字符后,翻转的最高位是4 此时4等于4,那么就++cnt
翻转5个字符后,翻转的最高位是5,此时5等于5,那么就++cnt
最终cnt = 2。

(3) 我们按照上述所举的例子,便可以轻易的取得解决问题的放,那就是找到翻转的最高位max_flag,找到翻转的字符数目,只需要两者相等,最终结果+1即可。文章来源地址https://www.toymoban.com/news/detail-482088.html

到了这里,关于2023-06-14 LeetCode每日一题(二进制字符串前缀一致的次数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • (位运算) 1356. 根据数字二进制下 1 的数目排序 ——【Leetcode每日一题】

    难度:简单 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。 请你返回排序后的数组。 示例 1: 输入 :arr = [0,1,2,3,4,5,6,7,8] 输出 :[0,1,2,4,8,3,5,6,7] 解释

    2024年02月12日
    浏览(53)
  • 【每日一题】1253. 重构 2 行二进制矩阵

    给你一个 2 行 n 列的二进制数组: 矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1。 第 0 行的元素之和为 upper。 第 1 行的元素之和为 lower。 第 i 列(从 0 开始编号)的元素之和为 colsum[i],colsum 是一个长度为 n 的整数数组。 你需要利用 upper,lower 和 colsu

    2024年02月12日
    浏览(45)
  • C语言每日一题之整数求二进制1的个数

    今天分享一道题目,用三种方法来求解 二进制1的个数 方法1 我们的十进制除10和取余数就可以得到我们每一位的数字,那我们的二进制也可 以 这是一种方法,另外一种就是我们可以用移位操作符来算 这个方法是不是也是特别妙呢,当然还有更妙的方法,请看!!! 相信看

    2024年02月15日
    浏览(62)
  • C语言每日一题(5):求两个数二进制中不同位的个数

    文章主题:求两个数二进制中不同位的个数🔥 所属专栏: C语言每日一题 📗 作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶 个人主页: [₽]的个人主页 🏄🌊 最近刚学位操作符以及二进制码的相关知识,于是想出了求两个数二进制中不同

    2024年02月07日
    浏览(152)
  • 【每日一题Day218】LC1091 二进制矩阵中的最短路径 | BFS

    你驾驶出租车行驶在一条有 n 个地点的路上。这 n 个地点从近到远编号为 1 到 n ,你想要从 1 开到 n ,通过接乘客订单盈利。你只能沿着编号递增的方向前进,不能改变方向。 乘客信息用一个下标从 0 开始的二维数组 rides 表示,其中 rides[i] = [starti, endi, tipi] 表示第 i 位乘客

    2024年02月08日
    浏览(52)
  • 【Leetcode -1290.二进制链表转整数 -剑指Offer 06.从尾到头打印链表】

    题目:给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的十进制值 。 示例 1: 输入:head = [1, 0, 1] 输出:5 解释:二进制数(101) 转化为十进制数(5) 示例 2: 输入:head = [0] 输出:

    2023年04月26日
    浏览(47)
  • 2023-06-16 LeetCode每日一题(并行课程 II)

    点击跳转到题目位置 给你一个整数 n 表示某所大学里课程的数目,编号为 1 到 n ,数组 relations 中, relations[i] = [xi, yi] 表示一个先修课的关系,也就是课程 xi 必须在课程 yi 之前上。同时你还有一个整数 k 。 在一个学期中,你 最多 可以同时上 k 门课,前提是这些课的先修课

    2024年02月09日
    浏览(45)
  • LeetCode 每日一题 2023/8/14-2023/8/20

    记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 8/14 617. 合并二叉树 dfs深搜 8/15 833. 字符串中的查找与替换 op存放该位置能替换的数值 从头遍历每个位置 8/16 2682. 找出转圈游戏输家 模拟 8/17 1444. 切披萨的方案数 动态规划 dp[k][i][j] 表

    2024年02月12日
    浏览(49)
  • 2023-06-17 LeetCode每日一题(分割圆的最少切割次数)

    点击跳转到题目位置 圆内一个 有效切割 ,符合以下二者之一: 该切割是两个端点在圆上的线段,且该线段经过圆心。 该切割是一端在圆心另一端在圆上的线段。 一些有效和无效的切割如下图所示。 给你一个整数 n ,请你返回将圆切割成相等的 n 等分的 最少 切割次数。

    2024年02月09日
    浏览(52)
  • 2023-06-12 LeetCode每日一题(树节点的第 K 个祖先)

    点击跳转到题目位置 给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个祖先节点是从该节点到根节点路径上的第 k 个节点。 实现 TreeAncestor 类: TreeAncestor(int n,

    2024年02月08日
    浏览(103)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包