【从零开始】力扣刷题(1)

news2024/11/16 5:48:45

文章目录

  • 前言
  • 数组:数组的遍历
  • 485.最大连续的一个数
  • 495.提莫攻击
  • 414.第三大的数
  • 628.三个数的最大乘积
  • 数组:统计数组中的元素
  • 645.错误的集合
  • 697.数组的度
  • 484.找到所有数组中消失的数组
  • 442.数组中重复的数据
  • 41.缺失的第一个正数
  • 274.H指数


前言

我根据这里的表单开始刷力扣

数组:数组的遍历

485.最大连续的一个数

在这里插入图片描述
用的方法是先将数组转换成字符串,再以0分割,找到最大的字符的长度即是解。比较简单。
在这里插入图片描述

495.提莫攻击

在这里插入图片描述
做了一个小时也没做出来,参照一个题解,写了一下

用的是双指针,用[1,2,3,7] 2范例画图可以想象一下。
记录上一次攻击和最后一次攻击的时间点
如果在中毒时间之内就攻击了就重制最后一次攻击时间点
如果之外,总时间就加上最后一次攻击+持续时间(中毒结束时间点)-上一次攻击(中毒开始时间点)
最后再加上最后一击的中毒时间就结束了。
在这里插入图片描述

414.第三大的数

比较简单,先用集合去重,再排序。
在这里插入图片描述

628.三个数的最大乘积

思路是
如果大于等于6个数时,因为可能有负数的存在,就找出最前面和最后面三个数,然后暴力枚举所有可能性,排列组合一共C6_3种可能,找出最大的。
小于6直接排列组合,找出最大的。
难点是可能有0的出现和负数的出现,,于是直接暴力枚举了。
排列组合的方法,我写的我自己创的。

在这里插入图片描述

数组:统计数组中的元素

645.错误的集合

这个一开始想复杂也写复杂了,后来发现,用正确的集合-丢失的集合=丢失数
重复的集合-丢失的集合=重复数。
主要题目没看透,说是从1开始的整数,那我就用了小学学到的公式,正确的集合总和 = (首项加末项)*项数//2 。总和忘了有内置函数sum()
在这里插入图片描述
下面这个写法写的就很简单。道理类似。

在这里插入图片描述

697.数组的度

思路比较笨,仅供参考,主要是先找到数组的度,是多少,然后将nums里和数组的度一样的数存到列表里,比方说[1,2,2,3,1]度是2 ,1和2 一样有两个,存到新的列表里,然后遍历找到nums中的第一个1和最后一个1的nums的切片后的长度,存到新列表里(2也是这样),最后返回最小的那个长度值。
最后速度不容乐观。
在这里插入图片描述
有1个28ms的范例
官方解答:
在这里插入图片描述

先存三个数分别为nums的每个数的个数它第一个位置和最后一个位置。
然后遍历比较找到度,和每个度对应的长度,再比较决出最小的长度。这个速度28ms。
在这里插入图片描述

484.找到所有数组中消失的数组

一开始用两个for查找,超出时间限制了,后来用字典存有{应有的数:个数}
如果个数为0 说明缺少了,再用列表append。
在这里插入图片描述
没有想到集合可以做差集,直接用正确的集合-缺少的集合
在这里插入图片描述
还找到一种思路是这样的
在这里插入图片描述
博主用的c++写的。用python 仿写了一下是这样。
在这里插入图片描述

442.数组中重复的数据

我直接复制了上一个的代码,通过了

在这里插入图片描述
还有一种思路是这样的,
如果有这个数就让该数的变为相反数,如果出现第二次,此时就为负的,存下这个值。假设我们是不少的[1,2,3,4],那么每次执行我都只会进去第一个if,只有一个数出现了两次,才会进入else。

在这里插入图片描述

41.缺失的第一个正数

想快一小时没有思路,看了一个题解,想法是这样的,先排序,使k = 1,如果有比k大的数就返回它,如果相等就使k加1。看着很简单,自己却没有想到,最小的正整数就是从1开始的。
在这里插入图片描述

274.H指数

我的思路是先判断他最大的数是否是0,如果是则直接返回0,否则,h等于总共的大于等于h的篇数(靠后的几位),如果列表中第一个值就大于h了就说明是此h,否则继续往后遍历下标。
在这里插入图片描述
看到的范例,先倒序排序,枚举,h类似于下标, 直到值和h相等时(数到最后一个值大于h时),说明有h个论文被发表h次。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Scalable SoftGroup for 3D Instance Segmentation on Point Clouds

Abstract 本文考虑了一个称为SoftGroup的网络,用于准确和可扩展的3D实例分割。现有的最先进方法会产生硬语义预测,然后进行分组以获得实例分割结果。然而,源于硬决策的错误会传播到分组中,导致预测实例与ground truth的低重叠和大…

数据结构:排序的基本概念

排序(sorting)是按关键字的非递减或非递增顺序对一组记录重新进行整队(或排列)的操作。确切描述如下: 假设含有 n 个记录的序列为 {r1 ,r2 , … ,rn} (3-1) 它们的关键字相应为 {k1 ,k2 , … ,kn} 对式(3-1)的记录序列进行排序就是要确定序号 1,2,,n 的一种排列 p1,p2 , … …

MyBatis 表连接查询写法|三种对应关系

❤️作者主页:微凉秋意 ✅作者简介:后端领域优质创作者🏆,CSDN内容合伙人🏆,阿里云专家博主🏆 ✨精品专栏:C面向对象 🔥系列专栏:JavaWeb 文章目录前言表连接…

JS 6万字超详细总结

文章目录1. JS简介2. JS的使用2.1 行内式2.2 内嵌式2.3 外部式3. JS基础语法3.1 注释3.2 变量3.3 输入和输出3.4 数据类型3.4.1 字符串类型3.4.2 数字类型3.4.3 布尔类型3.4.4 Undefined和Null3.4.5 获取变量的类型3.5 数据类型转换3.5.1 转换为字符串类型3.5.2 转换为数字类型…

Java多线程(二)——ReentrantLock源码解析(补充4——条件变量Condition)

ReentrantLock源码解析(补充4——条件变量Condition) 上一章 ReentrantLock源码解析 仅介绍了 ReentrantLock 的常用方法以及公平锁、非公平锁的实现。这里对上一章做一些补充。主要是: AQS 中阻塞的线程被唤醒后的执行流程可打断的锁 lock…

CDH数仓项目(二) —— 用户行为数仓和业务数仓搭建

0 说明 本文基于《CDH数仓项目(一) —— CDH安装部署搭建详细流程》开始搭建数仓 1 数仓搭建环境准备 1.1 Flume安装部署 1)添加服务 2) 选择Flume 3)选择依赖 4)选择部署节点 5) 安装完成 1.2 安装Sqoop 1)添加服务 2)选…

Unity2023 Alpha新功能简介

Unity2023特征:Graphic:添加了新的光线跟踪加速结构。添加实例签名,允许将网格实例添加到GPU光线跟踪的加速结构中。从栅格化管道中渲染网格。HDRP:为HDRP添加了光线追踪地形支持。Eidtor:添加了“聚焦窗口改变”回调到…

spring AOP 原理

一、spring注册 AnnotationAwareAspectJAutoProxyCreator 通过EnableAspectJAutoProxy可以看到先把AspectJAutoProxyRegistrar通过Import注册到spring。 AspectJAutoProxyRegistrar实现了ImportBeanDefinitionRegistrar接口,所以就有了将某个bean引入spring 的能力…

#C. 笨友圈

题目思路1直接模拟题意,相当于邻接矩阵,用bool类型的二维数组vis[i][j]来存储i和j是否为好友,交叉点为1代表是好友,为0代表不是;a[i]存储i这个人看到的信息数量。然后输入后如果符号代表要将u,v加个好友,就将vis[u][v] 1和vis[v][u] 1,如果是拉黑就将vis[u][v] 0和vis[v][u]…

ATAC-seq分析:差异分析(10)

在下部分中,我们将研究如何使用 R/Bioconductor 识别开放区域中的变化。 在这里,我们将采用类似于 Diffbind 中的方法,并在 ATACseq 分析中合理建立。 1. 识别非冗余峰 首先,我们将定义至少 2 个样本中存在的一组非冗余峰&#xf…

ffmpeg为mkv封装格式的音视频文件添加字幕

现在好莱坞的电影,都是全球看,一个地区的人看电影时,电影屏幕上应该展示对应的本地区语言字幕。故电影画面在不同的地区,需要配置不同的语言字幕。故视频画面里面的字幕应该可以拆出来,不能像老版三国演义,…

ZYNQ IP核之RAM

随机存取存储器(Random Access Memory,RAM),可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据,其读写速度是由时钟频率决定的,主要用来存放程序及程序执行过程中产…

C++结构(OOP的基石)

写在前面 面向初学者撰写专栏,个人原创的学习C/C笔记(干货)所作源代码输出内容为中文,便于理解如有错误之处请各位读者指正请读者评论回复、参与投票,反馈给作者,我会获得持续更新笔记干货的动力。致粉丝&a…

vulnhub之VENOM:1

1.信息收集 输入arp-scan 192.168.239.0/24探测存活的IP 使用nmap对192.168.239.166进行扫描,发现IP端口21、80、139、443、445。 在浏览器上访问http://192.168.239.166/,查看源码发现类似md5加密。 解密md5可以得到为hostinger。 输入enum4linux …

Linux | 软件包管理器——yum的使用

文章目录一、什么是软件包二、有关软件使用的背景讲解1、如何去下一个软件呢?过程是怎样的?2、软件的商业利益分析3、Linux开源社区的生态链4、Linux中软件的分类和选择三、yum的使用1、说在前面【注意事项】2、如何查看软件包3、软件的安装和卸载四、yu…

WPF鼠标、键盘、拖拽事件、用行为封装事件

WPF鼠标、键盘、拖拽事件、用行为封装事件 本文主要介绍了WPF中常用的鼠标事件、键盘事件以及注意事项,同时使用一个案例讲解了拓展事件。除此之外,本文还讲述如何用行为(Behavior)来封装事件。 Windows中的事件通过消息机制来完…

新手利用Git上传项目代码到Gitee仓库

【本文发布于https://blog.csdn.net/Stack_/article/details/128770678,未经许可禁止转载,转载须注明出处】 一、安装git工具 【git下载】 【git插件以及插件汉化包下载】 官网下载很慢,已上传CSDN。跳转 或者百度云 链接:https:…

下拉列表支持多选

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>下拉列表支持多选</title> </head> <body bgcolor"antiquewhite"> <center> <…

【算法基础】二分查找算法

一、二分查找算法原理 1. 算法介绍 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后…

github codespace进行npm start运行开发服的时候无法显示页面(白屏)

github codespace进行npm start运行开发服的时候无法显示页面解决方案 先说答案 必须要指定host为0.0.0.0&#xff0c;因为一般前端开发的时候都是本地访问的&#xff0c;所以npm start 默认启动一个开发服&#xff0c;监听127.0.0.1的请求&#xff0c;也就是localhost。但是…