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

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 在线地址在文末 介绍 嘿&#xff0c;大家好&#xff01;今天我要给大家介绍一个非常酷炫的技术结合——ChatGPT与StableDiffusion的合作。听起来是不是很有趣&#xff1f;那么&#xff0c;让我们一起来看看这个组合到底能带给我们什么样的奇妙体验…...

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&#xff0c;就剩最后一个 rootfs(根文件系统)了&#xff0c;本章就来学习一下根文件系统的组成以及如何构建根文件系统。这是Linux系统移植的最后一步&#xff0c;根文件系统构建好以后就意味着拥有了一个完整的、可以运行的最小系统 …...

React闭包

声明 本文将深入探讨React与闭包之间的关系。 我们将首先介绍React和闭包的基本概念&#xff0c;然后详细解释React组件中如何使用闭包来处理状态和作用域的问题。 通过本文的阅读&#xff0c;你将对React中闭包的概念有更深入的理解&#xff0c;并能够在开发React应用时更好地…...

【VS Code】推荐一套我非常喜欢的主题和字体样式

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

【SQL】MySQL中的约束

1. 主键约束&#xff08;primary key&#xff09;&#xff1a; 相当于唯一约束非空约束分为单列主键&#xff0c;多列联合主键&#xff0c;一个表只有一个主键多列联合主键的每列都不能为空 2. 自增长约束&#xff08;auto_increment&#xff09;&#xff1a; 用在单列主键后…...

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开发属于服务器开发&#xff0c;那么作为一名前端工程师为什么需要学习服务器开发呢&#xff1f; 为什么学习服务器开发&#xff1f; 能够和后端程序员更加紧密配合网站业务逻辑前置扩宽知识视野 1.2 服务器开发可…...

git中添加不上传的文件夹或文件的名字

在该目录.gitignore中 添加不上传的文件夹或文件的名字...

Android: edittext禁止输入空格和特殊字符代码记录

一、前言&#xff1a;这个代码也是借鉴别人写的&#xff0c;我也看不太懂。为了方便日后用到就用这篇文章记录一下。 二、代码展示 /*** 禁止EditText输入空格** param editText*/public static void setEditTextInhibitInputSpace(EditText editText) {editText.addTextChang…...

SpringMVC常用注解

SpringMVC常用注解 RequestMapping&#xff1a;用于处理请求 url 映射的注解&#xff0c;可用于类或方法上。用于类 上&#xff0c;则表示类中的所有响应请求的方法都是以该地址作为父路径。RequestBody&#xff1a;注解实现接收 http 请求的 json 数据&#xff0c;将 json 转…...

微信小程序

文章目录 一、实现步骤&#xff08;一&#xff09;创建项目&#xff08;二&#xff09;创建页面&#xff08;三&#xff09;准备图片素材&#xff08;四&#xff09;编写页面结构1、编写轮播区域页面结构2、编写九宫格区域页面结构 &#xff08;五&#xff09;编写页面样式1、编…...

Python教程——配置环境,再探IDE

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

java BigDecimal取消科学计数法显示

...

南昌新颜|AIGC艺术之光,历史的魅力与未来的探索

在这个本来稀松平常的周一&#xff0c;我们坐在电脑前&#xff0c;回顾着刚刚过去的两天&#xff0c;仿佛经历了“反方向的钟”。前两天的上班日子&#xff0c;究竟是周几呢&#xff1f;答案不再是简单的星期几&#xff0c;而是“周负二”和“周负一”。因为&#xff0c;我们把…...

电容笔有必要买吗?电容笔牌子排行

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

SpringCloud学习笔记-Ribbon负载均衡

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

安装JAVA 依赖环境 Maven 教程

一、下载链接与Tips Maven 过去版本下载传送门&#xff1a;&#xff08; Java 8 兼容 Java 7&#xff0c;即 Java 8 的 JDK 能运行 3.8.8 以下的 Maven&#xff09; Maven Releases History Download 点击 release notes 点击 available for download. 选择 bin 的安装包 然…...

小程序A跳转小程序B并且自动登录

需求 例如有一个小程序A&#xff0c;A中有一个功能需要跳转小程序B进行查看。需要点击此功能跳转至小程序B,并且自动登录 实现方式 小程序A的跳转方法 wx.navigateToMiniProgram({appId: "目标小程序APPID",path: "目标小程序小程序页面",extraData: {use…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...