LeetCode75——Day16

2023-10-26 08:45
文章标签 day16 leetcode75

本文主要是介绍LeetCode75——Day16,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、题目
    • 二、题解

一、题目

1004. Max Consecutive Ones III

Given a binary array nums and an integer k, return the maximum number of consecutive 1’s in the array if you can flip at most k 0’s.

Example 1:

Input: nums = [1,1,1,0,0,0,1,1,1,1,0], k = 2
Output: 6
Explanation: [1,1,1,0,0,1,1,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.
Example 2:

Input: nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], k = 3
Output: 10
Explanation: [0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.

Constraints:

1 <= nums.length <= 105
nums[i] is either 0 or 1.
0 <= k <= nums.length

二、题解

滑动窗口+前缀和

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n = nums.size();vector<int> P(n + 1);for (int i = 1; i <= n; ++i) {P[i] = P[i - 1] + (1 - nums[i - 1]);}int ans = 0;for (int right = 0; right < n; ++right) {int left = lower_bound(P.begin(), P.end(), P[right + 1] - k) - P.begin();ans = max(ans, right - left + 1);}return ans;}
};

这篇关于LeetCode75——Day16的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/285511

相关文章

DAY16:什么是慢查询,导致的原因,优化方法 | undo log、redo log、binlog的用处 | MySQL有哪些锁

目录 什么是慢查询,导致的原因,优化方法 undo log、redo log、binlog的用处  MySQL有哪些锁   什么是慢查询,导致的原因,优化方法 数据库查询的执行时间超过指定的超时时间时,就被称为慢查询。 导致的原因: 查询语句比较复杂:查询涉及多个表,包含复杂的连接和子查询,可能导致执行时间较长。查询数据量大:当查询的数据量庞大时,即使查询本身并不复杂,也可能导致

Lesson_for_java_day16--java中的异常和IO流(File类、字节流、字符流、指定编码格式)

一、异常: --------------------------------java中的异常-------------------------------------------什么是异常:异常是中断了正常指令流的事件。异常的由来:出现问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象,其实就是java对不正常情况进行描述后的对象体现。异常的分类:(Th

鸿蒙开发入门day16-拖拽事件和手势事件

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,还请三连支持一波哇ヾ(@^∇^@)ノ) 目录 拖拽事件 概述 拖拽流程 ​手势拖拽 ​鼠标拖拽 拖拽背板图 开发步骤 通用拖拽适配 多选拖拽适配 手势事件 gesture(常规手势绑定方法) priorityGesture(带优先级的手势绑定方法) parallelGesture(并行手势绑定

算法day16|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

算法day16|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树 654.最大二叉树617.合并二叉树1.额外申请空间(失败)2.不额外申请空间 700.二叉搜索树中的搜索98.验证二叉搜索树1.遍历后排序2.边遍历遍排序3.指针记录法 654.最大二叉树 这道题很简单,其实就是105、106的变式题。具体代码如下: class Sol

算法day16(补第15天)|用递归方法求解:513.找树左下角的值

@TOC 513.找树左下角的值 递归法(补day15) 难度较大,代码如下: class Solution {public:int result;int maxdepth=INT_MIN;void traversal(TreeNode* root,int depth){if(root->left==nullptr&&root->right==nullptr){if(maxdepth<d

代码随想录四刷day16

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣111. 二叉树的最小深度二、力扣222. 完全二叉树的节点个数三、力扣110. 平衡二叉树四、力扣257. 二叉树的所有路径 前言 本周的主题其实是简单但并不简单,本周所选的题目大多是看一下就会的题目,但是大家看完本周的文章估计也发现了,二叉树的简单题目其实里面都藏了很多细节

Day16_Zookeeper

文章目录 Zookeeperzookeeper和dubbo的关系Raft协议选举算法Zookeeper的选举算法是什么?什么是ZAB协议?四种类型的数据节点 ZnodeZookeeper的持久节点和临时节点有什么区别?zookeeper如何实现分布式锁Zookeeper 下 Server有哪些工作状态?Zookeeper集群中有哪些角色?你熟悉Zookeeper节点ZNode和相关属性吗?Z

LeetCode面试题Day16|LC56 合并区间、LC57 插入区间

题目一: 指路: . - 力扣(LeetCode)56 合并区间 思路与分析: 本题题意清晰易懂,当区间有重叠元素时返回能覆盖这些重叠区间的大区间,否则就返回无重叠区间。那么判断区间是否有重叠只需要按照区间各自的左边界升序排序,如果前一个区间的右边界大于后一个区间的左边界时则说明当前两区间有重叠元素。那么在将答案添加进结果集时,按照区间左边界升序之后,第一个区间的左边界一定是最小的,可以直

cgb2107-day16

文章目录 一,练习前后端整合,包括入库--1,java代码--2,前端代码--3,测试--4,总结 二,SpringMVC框架解析post提交的请求参数--0,项目结构--1,准备表单--2,准备启动类--3,准备Controller类,解析请求数据--4,创建Student类,用来封装数据--5,测试--6,扩展:入库修改pom,添加jdbc的jar包创建数据库表创建StudentCont

day16--513.找树左下角的值+112. 路径总和+106.从中序与后序遍历序列构造二叉树

一、513.找树左下角的值 题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/ 文章讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html 视频讲解:https://www