当前位置: 首页 > news >正文

leetcode485. 最大连续 1 的个数

思路:【双指针】

left左边界,right往右跑遇到0,则计算该长度。并更新cnt(最大连续1个数)。

class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int left = 0, right = 0;int cnt = 0;while (left != nums.size()) {if (nums[left] == 0) {left++;continue;}right = left;while (right != nums.size()) {if (nums[right] == 0) {int t = right - left;if (t > cnt) {cnt = t;}left = right;break;}right++;}if (right == nums.size()) {int t = right - left;if (t > cnt) {cnt = t;}break;}}return cnt;}
};

 

emmm怎么看答案一次遍历就可以完成呢?

思路:一次遍历

设置两个变量,cnt记录当前小区间的 1 的个数,然后maxcnt记录整个nums数组的 1 的个数(结束一个小区间,满足条件就更新一下)

代码

class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int count = 0, maxCount = 0;for (int i = 0; i < nums.size(); i++) {if (nums[i] == 1) {count++;}else {maxCount = max(count, maxCount);count = 0;}}maxCount = max(count, maxCount);return maxCount;}
};

 Java 代码

class Solution {public int findMaxConsecutiveOnes(int[] nums) {int cnt = 0, maxcnt = 0;for(int i = 0; i < nums.length; i++){if(nums[i] == 1){cnt++;}else{maxcnt = Math.max(cnt, maxcnt);cnt = 0;}}maxcnt = Math.max(cnt, maxcnt);return maxcnt;}
}

http://www.lryc.cn/news/138756.html

相关文章:

  • linux 源代码编译
  • C语言日常刷题 1
  • es和数据库同步方案
  • 手机NFC功能是什么?
  • 零拷贝技术详解
  • 【VS Code插件开发】消息通信(四)
  • 开源硬件:下一个技术革命?
  • 开发一个npm组件包
  • 有限与无限游戏 | 真北荐书
  • 网络安全(黑客)自学剖析
  • Leetcode每日一题:1267. 统计参与通信的服务器
  • HarmonyOS开发:超详细了解项目的工程结构
  • HTML基础知识点
  • 基于CBAM-CNN卷积神经网络预测研究(Python代码实现)
  • iOS开发Swift-基本运算符
  • Flink java 工具类
  • 2023年你需要知道的最佳预算Wi-Fi路由器清单
  • Go语言基础之流程控制
  • Git 安装、配置并把项目托管到码云 Gitee
  • C++信息学奥赛1147:最高分数的学生姓名
  • STM32使用PID调速
  • 【UE5:CesiumForUnreal】——3DTiles数据属性查询和单体高亮
  • 无涯教程-PHP - 返回类型声明
  • DOS常见命令
  • Qt应用开发(拓展篇)——示波器/图表 QCustomPlot
  • 【精度丢失】后端接口返回的Long类型参数,不同浏览器解析出的结果不一样
  • 2023年国赛 高教社杯数学建模思路 - 案例:感知机原理剖析及实现
  • java-红黑树
  • vue2 vue中的常用指令
  • AI驱动下的智能制造:工业自动化的新纪元