Leetcode——数组的遍历系列练习
485. 最大连续 1 的个数
class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {// 记录最大连续1个数int max = 0;// 记录数组中存在1个数int sum = 0;// 遍历连续1个数int count = 0;for (int i = 0; i < nums.size() - 1; i++) {if (nums[i] == 1)sum++;if (nums[i] == nums[i + 1] && nums[i] == 1){count++;if (count > max) {max = count;}}else {count = 0;}}// 检查数组最后一个元素是否是1if (nums[nums.size() - 1] == 1){sum++;}// 起始计数均设为0,若数组中存在1则实际count应多一if (sum > 0) {max++;}return max;}
};
本人解法非常绕,思路很乱,边界值测试好多遍才通过。学习优解答案!!
答案
class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int max = 0;int count = 0;for (int i = 0; i < nums.size(); i++) {// 如果是元素1则计数++if (nums[i] == 1){count++;}// 不是1则不连续,对比max和count进行max更新,计数重置为0else {if (max < count)max = count;count = 0;}}// 对比max和count进行max更新if (max < count)max = count;return max;}
};
};
summary:主要没有把握题目中仅有0,1两种元素对于连续的操作。
495.提莫攻击
class Solution {
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int sum = 0;// 先不考虑最后一次攻击for (int i = 0; i < timeSeries.size() - 1; i++) {// 攻击+持续时间<下一次攻击时间,则可以在持续时间内均中毒if (timeSeries[i] + duration - 1 < timeSeries[i + 1]){sum += duration;}// 否则,只能在两次连续攻击中间时间中毒,此时间<持续时间else{sum = sum + timeSeries[i + 1] - timeSeries[i];}}// 最后一次攻击永远可以持续中毒return sum + duration;}
};
答案
class Solution {
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int ans = 0;int expired = 0;for (int i = 0; i < timeSeries.size(); ++i) {// 未中毒,则可以完成duration中毒if (timeSeries[i] >= expired) {ans += duration;} else {// 正在中毒,减去上次中毒结束时间ans += timeSeries[i] + duration - expired;}// 未中毒起始时间expired = timeSeries[i] + duration;}return ans;}
};
414. 第三大的数
class Solution {
public:int thirdMax(vector<int>& nums) {// sort排序数组函数sort(nums.begin(), nums.end());// reverse反转数组函数reverse(nums.begin(), nums.end()); // erase去重数组函数nums.erase(unique(nums.begin(), nums.end()), nums.end()); if(nums.size()>=3){return nums[2];}else{return nums[0];}}
};
答案
class Solution {
public:int thirdMax(vector<int> &nums) {// greater从大到小排序sort(nums.begin(), nums.end(), greater<>());for (int i = 1, diff = 1; i < nums.size(); ++i) {if (nums[i] != nums[i - 1] && ++diff == 3) { // 此时 nums[i] 就是第三大的数return nums[i];}}return nums[0];}
};
628. 三个数的最大乘积
class Solution {
public:int maximumProduct(vector<int>& nums) {int len = nums.size();// 将数组降序sort(nums.begin(), nums.end(), greater<>());// 能得到三个数乘积最大值有两种情况:// 1.全部为正数数组升序排列后,前三个元素乘积最大// 2.既含有正数也含有负数的数组,两个中最大的负数和最大的正数相乘也可能得到最大乘积// 3.两种情况比较得出最大值返回int result = nums[0] * nums[1] * nums[2];int result1 = nums[0] * nums[len - 1] * nums[len - 2];if (result < result1) {return result1;}else {return result;}}
};
相关文章:

Leetcode——数组的遍历系列练习
485. 最大连续 1 的个数 class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {// 记录最大连续1个数int max 0;// 记录数组中存在1个数int sum 0;// 遍历连续1个数int count 0;for (int i 0; i < nums.size() - 1; i) {if (nums[i] 1)s…...

免费的ChatGPT与StableDiffusion AI绘画 二合一 附在线地址
ChatGPT与StableDiffusion 在线地址在文末 介绍 嘿,大家好!今天我要给大家介绍一个非常酷炫的技术结合——ChatGPT与StableDiffusion的合作。听起来是不是很有趣?那么,让我们一起来看看这个组合到底能带给我们什么样的奇妙体验…...

vivado FFT IP仿真(3)FFT IP选项说明
xilinx FFT IP手册PG109 1 Configuration 2 Implementation 3 Detailed Implementation IP Symbol...

正点原子嵌入式linux驱动开发——Busybox根文件系统构建
前面已经移植了TF-A、Uboot和Linux kernel,就剩最后一个 rootfs(根文件系统)了,本章就来学习一下根文件系统的组成以及如何构建根文件系统。这是Linux系统移植的最后一步,根文件系统构建好以后就意味着拥有了一个完整的、可以运行的最小系统 …...
React闭包
声明 本文将深入探讨React与闭包之间的关系。 我们将首先介绍React和闭包的基本概念,然后详细解释React组件中如何使用闭包来处理状态和作用域的问题。 通过本文的阅读,你将对React中闭包的概念有更深入的理解,并能够在开发React应用时更好地…...

【VS Code】推荐一套我非常喜欢的主题和字体样式
话不多说,先上样式: 这里我的主题是 One Dark Pro,也是 VS Code 里面使用非常多的主题之一。直接安装插件即可使用。 我的字体是 JetBrains Mono,虽然使用的是 VS Code,但还是喜欢 webstorm 的字体。我们可以直接去官网…...

【SQL】MySQL中的约束
1. 主键约束(primary key): 相当于唯一约束非空约束分为单列主键,多列联合主键,一个表只有一个主键多列联合主键的每列都不能为空 2. 自增长约束(auto_increment): 用在单列主键后…...
css div左右布局
div左右布局 htm代码 <div class"content-box"><div class"left"></div><div class"right"></div></div>css样式 .content-box{height: 100%;width: 100%;display: flex; } .left{display: block;width:…...

06_Node.js服务器开发
1 服务器开发的基本概念 1.1 为什么学习服务器开发 Node.js开发属于服务器开发,那么作为一名前端工程师为什么需要学习服务器开发呢? 为什么学习服务器开发? 能够和后端程序员更加紧密配合网站业务逻辑前置扩宽知识视野 1.2 服务器开发可…...

git中添加不上传的文件夹或文件的名字
在该目录.gitignore中 添加不上传的文件夹或文件的名字...
Android: edittext禁止输入空格和特殊字符代码记录
一、前言:这个代码也是借鉴别人写的,我也看不太懂。为了方便日后用到就用这篇文章记录一下。 二、代码展示 /*** 禁止EditText输入空格** param editText*/public static void setEditTextInhibitInputSpace(EditText editText) {editText.addTextChang…...
SpringMVC常用注解
SpringMVC常用注解 RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类 上,则表示类中的所有响应请求的方法都是以该地址作为父路径。RequestBody:注解实现接收 http 请求的 json 数据,将 json 转…...

微信小程序
文章目录 一、实现步骤(一)创建项目(二)创建页面(三)准备图片素材(四)编写页面结构1、编写轮播区域页面结构2、编写九宫格区域页面结构 (五)编写页面样式1、编…...

Python教程——配置环境,再探IDE
文章目录 一、Python安装下载安装验证 二、第一个Python程序常见问题 三、Python解释器四、PyCharm工具安装和配置安装使用PyCharm基本使用 一、Python安装 下载 如果我们想要使用Python语言编写程序,我们必须下载Python安装包并配置Python环境,我们现…...

南昌新颜|AIGC艺术之光,历史的魅力与未来的探索
在这个本来稀松平常的周一,我们坐在电脑前,回顾着刚刚过去的两天,仿佛经历了“反方向的钟”。前两天的上班日子,究竟是周几呢?答案不再是简单的星期几,而是“周负二”和“周负一”。因为,我们把…...

电容笔有必要买吗?电容笔牌子排行
随着越来越多用户都开始用上了电容笔,苹果的Pencil,尽管功能强大,但是价格昂贵,并非所有人都可以有预算买得起。现在市面上有许多平替电容笔,其成本低、操作简便,因而受到了广泛的关注。所以,我…...

SpringCloud学习笔记-Ribbon负载均衡
目录 1.负载均衡策略2.自定义负载均衡策略3.饥饿加载 SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下: 基本流程如下: 拦截我们的RestTemplate请求http://userserv…...

安装JAVA 依赖环境 Maven 教程
一、下载链接与Tips Maven 过去版本下载传送门:( Java 8 兼容 Java 7,即 Java 8 的 JDK 能运行 3.8.8 以下的 Maven) Maven Releases History Download 点击 release notes 点击 available for download. 选择 bin 的安装包 然…...
小程序A跳转小程序B并且自动登录
需求 例如有一个小程序A,A中有一个功能需要跳转小程序B进行查看。需要点击此功能跳转至小程序B,并且自动登录 实现方式 小程序A的跳转方法 wx.navigateToMiniProgram({appId: "目标小程序APPID",path: "目标小程序小程序页面",extraData: {use…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)
漏洞概述 漏洞名称:Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号:CVE-2023-25194 CVSS评分:8.8 影响版本:Apache Kafka 2.3.0 - 3.3.2 修复版本:≥ 3.4.0 漏洞类型:反序列化导致的远程代…...