力扣算法刷题记录
文章平均质量分 62
记录刷题过程;
督促自己坚持刷题;
今天也力扣了吗?
这个作者很懒,什么都没留下…
展开
-
力扣刷题第二阶段Days35(javascript)
子数组是数组中元素的连续非空序列。原创 2024-08-30 16:25:01 · 329 阅读 · 0 评论 -
力扣第二阶段Days34
注意不仅要更新left 也要对window中left索引上元素进行清除。的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指由相同字母重排列形成的字符串(包括相同的字符串)。时隔数月,再次刷起力扣。原创 2024-08-29 22:36:09 · 384 阅读 · 0 评论 -
力扣刷题Days33-209. 长度最小的子数组(js)
滑动窗口的理解 结合队列的进出来理解;. - 力扣(LeetCode)原创 2024-04-08 14:50:57 · 324 阅读 · 0 评论 -
力扣刷题Days33-274. H 指数(js)
在于 排序之后,从最大项开始判断算法的时间复杂度和空间复杂度都依赖排序算法的实现;citations数组是每篇论文的引用次数,这里使用counter数组来计算被引用0~n次的论文分别有多少篇,这个方法经常使用;注意:论文共有n篇,根据h指数的定义,对于被引用次数大于n的,进行特殊处理,将其统计到引用次数为n的对应数组项中;i < n;i++){}else{重点在于积累与学习实现的逻辑!原创 2024-04-08 14:16:58 · 448 阅读 · 0 评论 -
力扣刷题Days32-92. 反转链表 II(js)
核心逻辑代码实现i++) { // 进行反转多画图 理解. - 力扣(LeetCode)原创 2024-04-03 17:58:18 · 221 阅读 · 0 评论 -
力扣刷题Days31-第二题-125.验证回文串(js)
数组的reverse()函数是在原函数上进行操作,所以要先保留原本的数组,这里将保留原数组和转化为字符串并为一步实现;(join()函数是不改变原来数组的)如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个。判断字符子否为数字,只需要判断其是否在0到9之间即可,并不存在多位数的数字情况;利用正则表达式对大小字母和数字进行一个匹配筛选。字母和数字都属于字母数字字符。原创 2024-04-02 20:08:20 · 256 阅读 · 0 评论 -
力扣刷题Days31-2.两数相关(js)
(1)创建的是一个节点,包含节点值和节点的next指针;(2)预先指针的使用:由于要不断移动指针指向从而保存各位数值之和,所以需要一个预先指针;来防止头指针丢失。(3)当前结果值的写入和进位的获取0 : l1.val;0 : l2.val;勉励自己:贵在坚持!原创 2024-04-02 19:25:13 · 293 阅读 · 0 评论 -
力扣刷题Days30-第二题-71.简化路径(js)
在 Unix 风格的文件系统中,一个点()表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,'//')都被视为单个斜杠'/'。原创 2024-04-01 19:49:08 · 368 阅读 · 0 评论 -
力扣刷题Days30-238. 除自身以外数组的乘积(js)
(1)积累一下对数组中0个数的统计(2)我的思路算出数组中所有数字的乘积,除以相对应索引值;首先,判断0的个数numsOfzero问题在于numsOfzero 等于1或者0的情况需要单独处理,整体代码的实现相对繁琐;原创 2024-04-01 17:10:41 · 638 阅读 · 0 评论 -
力扣刷题Days29-第二题-70.爬楼梯(js)
你有多少种不同的方法可以爬到楼顶呢?这种解法的本质是斐波那契数列。原创 2024-03-31 19:36:32 · 214 阅读 · 0 评论 -
力扣刷题Days29-128.最长连续数列(js)
碎碎念本题 先是想到利用数组排序,从而简化遍历处理逻辑,再在提交错误提醒的情况下,考虑到数组中存在重复数字的情况,从而进一步完善自己的代码逻辑,即先对数组进行去重,再排序,最后实现计数最长连续数列的逻辑;题解中学习到: 1是连续数列中最优的匹配情况是从数列的开头数字开始,也就是不存在其前驱项;2是合理利用数据结构,从而实现更好时间复杂度下对目标数的查找:利用set实现对x-1 和 num +1的线性查找;原创 2024-03-31 18:35:10 · 551 阅读 · 0 评论 -
力扣刷题Days28-第二题-11.盛水最多的容器(js)
在每个状态下,无论长板或短板向中间收窄一格,都会导致水槽 底边宽度 −1 变短:若向内 移动短板 ,水槽的短板 min(h[i],h[j])可能变大,因此下个水槽的面积 可能增大。若向内 移动长板 ,水槽的短板 min(h[i],h[j])不变或变小,因此下个水槽的面积 一定变小。因此,初始化双指针分列水槽左右两端,循环每轮将短板向内移动一格,并更新面积最大值,直到两指针相遇时跳出;即可获得最大面积。原创 2024-03-30 16:57:35 · 821 阅读 · 0 评论 -
力扣刷题Days28-66.加一(js)
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。原创 2024-03-30 16:09:21 · 254 阅读 · 0 评论 -
力扣刷题Days27--判断回文数(js)
***/// 先转化为字符串当使用split()方法时,如果你的目标是将字符串分割成单个字符组成的数组,你需要传入一个空字符串作为参数。在原代码中,split()没有传入参数,这将不会按预期分割字符串。方法会就地(in-place)反转数组,也就是说它直接修改原数组。将的结果赋值给arr2并不会创建一个新的数组副本;arr和arr2实际上会引用同一个数组对象。因此,当你比较与时,你实际上是在比较两个相同的字符串。原创 2024-03-28 15:14:52 · 307 阅读 · 0 评论 -
力扣刷题Days26-122.买股票最佳时期||(js)
dp[i][0]表示第i天交易完成后手里没有股票的最大利润;dp[i][1]表示第i天交易完成后手里持有一支股票的最大利润;原创 2024-03-25 15:10:55 · 588 阅读 · 0 评论 -
力扣刷题Days25-45. 跳跃游戏 II(js)
给定一个长度为n的0 索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i + j]处:原创 2024-03-24 15:46:54 · 426 阅读 · 0 评论 -
力扣刷题Days24-189.轮转数组(js)
积累翻转数组的思路!原创 2024-03-22 21:42:02 · 174 阅读 · 0 评论 -
力扣刷题Days23-35.搜索插入的位置(js)
学习与积累勉励自己:贵在坚持这题做的时候个人比较疲惫,二刷重点巩固。---重点是 理解left和right关系。原创 2024-03-20 21:56:48 · 258 阅读 · 0 评论 -
力扣刷题Days22-49.字母异位词(js)
排序数组 练习对Map数据结构相关方法的使用;原创 2024-03-19 17:28:16 · 440 阅读 · 0 评论 -
力扣刷题Days21-167.两数之和2(js)
给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是numbers[index1]和numbers[index2],则1原创 2024-03-18 17:18:05 · 357 阅读 · 0 评论 -
力扣刷题Days21-55.跳跃游戏(js)
题意抽取:只要存在一个位置x,它本身可以到达,并且它跳跃的最大长度为x+nums[x];对于一个可以到达的位置x,它使得x+1 x+2 x+3......x+nums[x]都可以到达;遍历数组,实时维护最远可以抵达的位置。对于当前遍历的位置x,如果在最远可以抵达的位置范围内,则我们可以从起点到达该x位置,因此我们需要判断更新最新的最远可以抵达的位置;如果最远可以抵达的位置大于等于数组中的最后一个位置,则数组最后位置是可达的,返回true;原创 2024-03-18 15:37:12 · 573 阅读 · 0 评论 -
力扣刷题Days20-151. 反转字符串中的单词(js)
给你一个字符串s,请你反转字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。返回单词顺序颠倒且单词之间用单个空格连接的结果字符串。原创 2024-03-17 22:50:23 · 509 阅读 · 0 评论 -
力扣刷题Days19-637.二叉树的层平均数
给定一个非空二叉树的根节点root, 以数组的形式返回每一层节点的平均值。原创 2024-03-15 11:08:17 · 596 阅读 · 0 评论 -
力扣刷题 Days18-第二题-完全二叉树的节点个数(js)
对于任意二叉树,都可以通过广度优先搜索或深度优先搜索计算节点个数,时间复杂度和空间复杂度都是 O(n),其中 n是二叉树的节点个数。原创 2024-03-14 15:28:33 · 814 阅读 · 0 评论 -
力扣刷题Days17(js)-67二进制求和
/ 输出: 5// 输出: 5// 输出: 5// 输出: -6。原创 2024-03-12 22:59:53 · 471 阅读 · 0 评论 -
力扣刷题Days16 - 191.位1的个数(js)
总结(1)运用了昨天学习的位运算,自己实现了第一种方法 : 逐位判断;n & (n−1),其运算结果恰为把 n 的二进制位中的最低位的 1 变为 0 之后的结果。如:运算结果 4 即为把 6 的二进制位中的最低位的 1 变为 0 之后的结果。原创 2024-03-11 18:41:55 · 644 阅读 · 0 评论 -
力扣刷题Days15第二题-137. 只出现一次的数字 II(js)
给你一个整数数组nums,除某个元素仅出现一次外,其余每个元素都恰出现三次 。请你找出并返回那个只出现了一次的元素。原创 2024-03-10 16:24:51 · 903 阅读 · 0 评论 -
力扣刷题Days15-136. 只出现一次的数字(js)
给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。原创 2024-03-10 12:05:56 · 402 阅读 · 0 评论 -
力扣刷题Days14第二题--80删除数组中重复元素||(js)
给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。原创 2024-03-09 21:57:01 · 347 阅读 · 0 评论 -
力扣刷题Days13-101对称二叉树(js)
树的递归思想 对我来说 在上难度了,多次思考,多问为什么,帮助自己提升自己的思维!勉励自己:贵在坚持!原创 2024-03-08 22:42:57 · 469 阅读 · 0 评论 -
力扣刷题Days13--翻转二叉树(js)
多练习 多做题!勉励自己:贵在坚持!原创 2024-03-08 18:53:34 · 642 阅读 · 0 评论 -
力扣刷题Days12第二题--100相同的树(js)
广度优先思维需要继续加强。原创 2024-03-07 23:50:59 · 468 阅读 · 0 评论 -
力扣刷题Days12--104二叉树最大深度(js)
给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。原创 2024-03-07 23:07:21 · 1156 阅读 · 0 评论 -
力扣刷题Days11第二题--141. 环形链表(js)
给你一个链表的头节点head,判断链表中是否有环。原创 2024-03-06 19:05:51 · 1405 阅读 · 0 评论 -
力扣刷题Day11--21. 合并两个有序链表(js)
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2024-03-06 12:40:17 · 414 阅读 · 0 评论 -
力扣刷题Days10第二题--121.买股票最佳时机(js)
你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。原创 2024-03-05 17:39:38 · 874 阅读 · 0 评论 -
力扣刷题Days10--20.有效的括号(js)
给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:原创 2024-03-05 13:47:52 · 342 阅读 · 0 评论 -
力扣刷题Days9--202.快乐数(js)
编写一个算法来判断一个数n是不是快乐数。如果n是快乐数就返回true;不是,则返回false。原创 2024-03-04 13:35:55 · 870 阅读 · 0 评论 -
力扣刷题Days8第二题--219. 存在重复元素 II(js)
给你一个整数数组nums和一个整数k,判断数组中是否存在两个不同的索引i和j,满足nums[i] == nums[j]且abs(i - j)原创 2024-03-03 11:50:11 · 341 阅读 · 0 评论 -
力扣刷题Days8--1.两数之和(js)
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。原创 2024-03-03 11:09:18 · 493 阅读 · 0 评论