![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
leetcode题目解析
TheSeasonSun
这个作者很懒,什么都没留下…
展开
-
401. 二进制手表
二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。 给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。 小时不会以零开头: 例如,“01:00” 是无效的时间,正确的写法应该是 “1:00” 。 分钟必须由两位数组成,可能会以零开头: 例如,“10:2” 是无效的时间,正确的写法应该是 “10:02” 。 class S原创 2021-06-21 19:13:59 · 82 阅读 · 0 评论 -
494. 目标和
给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。 返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。 输入:nums = [1,1,1,1,1], target = 3 输出:5 解释:一共有 5 种方法让最终目标和为 3 。 -1 + 1.原创 2021-06-07 12:41:57 · 107 阅读 · 0 评论 -
203. 移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 列表中的节点在范围 [0, 10^4] 内 1 <= Node.val <= 50 0 <= k <= 50 链表特点是只能从头节点开始遍历,链表的删除也只需要Node.next=Node.next.next即可,通俗来将就是架空Node.next节点,需要注意的是判断节点值是否相同的时候需要用Node.next来判断,如果用Node判断,.原创 2021-06-05 11:09:39 · 53 阅读 · 0 评论 -
525. 连续数组
给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 我最初的思路为计算出前缀和,当前缀和*2=子数组长度时,即说明子数组中0与1个数相同。但问题在于得到前缀和数组,去逐个遍历计算,时间复杂度仍为O(n**2) ,继续优化的关键为怎么用更多的空间去存储重复的数组,从而减少时间复杂度。 为了能满足优化条件,有个很好的方法是,将0记为-1,当0与1个数相同时,前缀和即为0,同时当两个前缀和相等时,他们的差即为0,则两前缀和下标之间的子数组符合要求。 可以.原创 2021-06-03 15:19:15 · 85 阅读 · 0 评论 -
523. 连续的子数组和
给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组: 子数组大小 至少为 2 ,且 子数组元素总和为 k 的倍数。 如果存在,返回 true ;否则,返回 false 。 如果存在一个整数 n ,令整数 x 符合 x = n * k ,则称 x 是 k 的一个倍数。 1 <= nums.length <= 10^5 0 <= nums[i] <= 10^9 0 <= sum(nums[i]) <= (2^31) -.原创 2021-06-02 16:57:32 · 135 阅读 · 0 评论