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

文章目录

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


前言

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

数组:数组的遍历

485.最大连续的一个数

【从零开始】力扣刷题(1)_第1张图片
用的方法是先将数组转换成字符串,再以0分割,找到最大的字符的长度即是解。比较简单。
【从零开始】力扣刷题(1)_第2张图片

495.提莫攻击

【从零开始】力扣刷题(1)_第3张图片
做了一个小时也没做出来,参照一个题解,写了一下

用的是双指针,用[1,2,3,7] 2范例画图可以想象一下。
记录上一次攻击和最后一次攻击的时间点
如果在中毒时间之内就攻击了就重制最后一次攻击时间点
如果之外,总时间就加上最后一次攻击+持续时间(中毒结束时间点)-上一次攻击(中毒开始时间点)
最后再加上最后一击的中毒时间就结束了。
【从零开始】力扣刷题(1)_第4张图片

414.第三大的数

比较简单,先用集合去重,再排序。
【从零开始】力扣刷题(1)_第5张图片

628.三个数的最大乘积

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

【从零开始】力扣刷题(1)_第6张图片

数组:统计数组中的元素

645.错误的集合

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

【从零开始】力扣刷题(1)_第8张图片

697.数组的度

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

先存三个数分别为nums的每个数的个数它第一个位置和最后一个位置。
然后遍历比较找到度,和每个度对应的长度,再比较决出最小的长度。这个速度28ms。
【从零开始】力扣刷题(1)_第11张图片

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

一开始用两个for查找,超出时间限制了,后来用字典存有{应有的数:个数}
如果个数为0 说明缺少了,再用列表append。
【从零开始】力扣刷题(1)_第12张图片
没有想到集合可以做差集,直接用正确的集合-缺少的集合
【从零开始】力扣刷题(1)_第13张图片
还找到一种思路是这样的
【从零开始】力扣刷题(1)_第14张图片
博主用的c++写的。用python 仿写了一下是这样。
【从零开始】力扣刷题(1)_第15张图片

442.数组中重复的数据

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

【从零开始】力扣刷题(1)_第16张图片
还有一种思路是这样的,
如果有这个数就让该数的变为相反数,如果出现第二次,此时就为负的,存下这个值。假设我们是不少的[1,2,3,4],那么每次执行我都只会进去第一个if,只有一个数出现了两次,才会进入else。

【从零开始】力扣刷题(1)_第17张图片

41.缺失的第一个正数

想快一小时没有思路,看了一个题解,想法是这样的,先排序,使k = 1,如果有比k大的数就返回它,如果相等就使k加1。看着很简单,自己却没有想到,最小的正整数就是从1开始的。
【从零开始】力扣刷题(1)_第18张图片

274.H指数

我的思路是先判断他最大的数是否是0,如果是则直接返回0,否则,h等于总共的大于等于h的篇数(靠后的几位),如果列表中第一个值就大于h了就说明是此h,否则继续往后遍历下标。
【从零开始】力扣刷题(1)_第19张图片
看到的范例,先倒序排序,枚举,h类似于下标, 直到值和h相等时(数到最后一个值大于h时),说明有h个论文被发表h次。
【从零开始】力扣刷题(1)_第20张图片

你可能感兴趣的:(python,leetcode,算法,职场和发展)