leetcode刷题
文章平均质量分 58
小嬴布菱
这个作者很懒,什么都没留下…
展开
-
leetcode 56. 合并区间
leetcode LeetBook 数组和字符串56. 合并区间我的思路之前做过类似的题目。首先排序,JS 的排序如果直接intervals.sort()并不能按照我们希望的样子排序。会有 15 排在 2 前面的情况。所以需要改写一下 sort 方法。排序结束之后,判断相邻的两个区间是否有重复的部分,如果有重复的部分那么就删除这两个区间,插入新的区间。并且这里注意要 i–进行回退,不然会发现有一些区间并没有被操作过。/** * @param {number[][]} intervals * @r原创 2021-06-09 13:35:14 · 117 阅读 · 0 评论 -
leetcode 35. 搜索插入位置
leetcode LeetBook 数组和字符串35. 搜索插入位置我的思路直接查询首先判断第 0 个数,如果 target 小于等于这个数,那就把它插入在第 0 位上。之后从 i=1 开始遍历,如果 target 小于这个数但是大于前一个数,那就插入在这个位置上。遍历结束后如果都没有插入数,那么说明这个数需要插入到数组的末尾,即为 nums.length 位置上。/** * @param {number[]} nums * @param {number} target * @retu原创 2021-06-09 11:38:57 · 88 阅读 · 0 评论 -
leetcode724.寻找数组的中心下标 总结reduce()用法
leetcode LeetBook 数组和字符串 724. 寻找数组的中心下标 总结reduce()用法我的思路遍历 nums 中的每个元素,分别计算该元素左右两边元素的和,如果相等,那么返回该元素下标。如果遍历结束都没有找到,那么返回-1。时间复杂度O(n2)O(n^2)O(n2),空间复杂度O(2)O(2)O(2)/** * @param {number[]} nums * @return {number} */var pivotIndex = function (nums) { f原创 2021-06-07 11:59:21 · 193 阅读 · 0 评论 -
leetcode 474. 一和零
leetcode 每日一题 474. 一和零我的思路我想的是用一个 map 存每个字符串中的 0,1。然后再用背包解决问题。最后还是没做出来,看了题解。题解思路官方题解使用了三维动态规划,三个维度分别是字符串、0 的容量和 1 的容量。定义三维 dp[i][j][k]表示在前 i 个字符串中,使用 j 个 0 和 k 个 1 能够得到的最多的字符串数量。最终答案为 dp[strs.length][m][n].var findMaxForm = function (strs, m, n) {原创 2021-06-06 17:52:17 · 64 阅读 · 0 评论 -
leetcode 203. 移除链表元素
leetcode 每日一题 203. 移除链表元素我的思路/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode} head * @param {n原创 2021-06-05 22:57:36 · 81 阅读 · 1 评论 -
leetcode 160. 相交链表
leetcode 每日一题160. 相交链表我的思路链表!不知道用 JS 怎么处理链表,每日一题总能 get 到我的知识盲区。不会链表的我连思路都没有,哭哭。官方题解官方题解给了两种方法:哈希集合先遍历一遍 headA 的放入集合中,然后再遍历 headB,如果遍历到的 headB 在集合中存在的话,那么就是和 headA 的交点。var getIntersectionNode = function (headA, headB) { var set = new Set(); var原创 2021-06-05 12:14:48 · 47 阅读 · 0 评论 -
leetcode 525. 连续数组
leetcode 每日一题 525. 连续数组我的思路前缀和,把第一个设为 0,遇到 1 前缀和+1,遇到 0 前缀和-1,然后找前缀和中最后一个 0 的位置,返回即为结果。哇,是不是看起来很简单?简直大错特错!题目要求最长连续子数组,这个子数组不一定从最开始就有啊。比如数组[0,0,1,0,0,0,1,1],就是最后 6 个是题目想要的数组。var findMaxLength = function (nums) { // if(nums.length<2) return 0; var原创 2021-06-03 16:27:39 · 95 阅读 · 0 评论 -
leetcode 523. 连续的子数组和
leetcode 每日一题 523. 连续的子数组和我的思路遍历数组,遍历以第 i 个元素为起点的所有子数组,用 temp 记录当前的总和,并计算是否为 k 的倍数,如果是则返回 true;否则,遍历结束后返回 false。时间复杂度O(n2)O(n^2)O(n2),空间复杂度O(1)O(1)O(1)只是 temp 占用了空间。93 / 94 个通过测试用例。 最后一个果然超时了。var checkSubarraySum = function (nums, k) { for (let i原创 2021-06-02 13:47:27 · 99 阅读 · 0 评论 -
leetcode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
leetcode 每日一题1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?我的思路对于 queries 中每个的 querie,都可以计算出最少吃的个数(等于天数)以及最多能吃到的个数(等于天数 × 每日最多能吃到的个数)。根据示例 2,可以思考出:如果我们计算出 candies 的前缀和,每个对应 querie[0]位置的前缀和正好在最大与最小之间,那么一定能吃到!然后就出现了第一个问题!示例中的第一个示例,由于[0,2,2]这个 querie 的 maxeat 为 4,mineat 为 2原创 2021-06-01 13:51:14 · 119 阅读 · 0 评论 -
leetcode 342. 4的幂
leetcode_5月31日每日一题342. 4的幂给你一个整数 n,请你判断该整数是否是 4 的幂次方。如果是,返回 true;否则,返回 false 。如果存在一个整数 x 使得 n=4xn = 4^xn=4x ,则认为 n 是 4 的幂次方。和昨天一样的简单,但是需要注意 n 的范围−231<=n<=231−1-2^{31} <= n <= 2^{31} - 1−231<=n<=231−1。var isPowerOfFour = functi原创 2021-05-31 10:08:31 · 79 阅读 · 0 评论 -
leetcode 231. 2 的幂
leetcode的20210530每日一题231. 2 的幂给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true;否则,返回 false 。如果存在一个整数 x 使得 n=2xn = 2^xn=2x ,则认为 n 是 2 的幂次方。题目简单,但是需要注意n的范围−231<=n<=231−1-2^{31} <= n <= 2^{31} - 1−231<=n<=231−1var isPowerOfTwo = function(n)原创 2021-05-30 14:59:45 · 98 阅读 · 0 评论 -
leetcode 560. 和为 K 的子数组
leetcode 560. 和为 K 的子数组写了一个超时的。时间复杂度O(n2)O(n^2)O(n2);空间复杂度O(1)O(1)O(1)//var subarraySum = function (nums, k) { var ans = 0; for (let i = 0; i < nums.length; i++) { //遍历nums考虑每个位置作为子数组开头的情况 var sum = 0; for (let j = i; j > nums.leng原创 2021-05-29 10:51:17 · 72 阅读 · 0 评论 -
leetcode 477. 汉明距离总和
leetcode 5 月 28,每日一题477. 汉明距离总和参考官方题解两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。对应数组 nums 中的某个元素 val,如果其二进制的第 i 位为 1,只需要统计 nums 中有多少元素的第 i 位为 0,就计算出了 val 与其他元素在第 i 位上的汉明距离之和。假如第 i 位上共有 c 个 1,有(n−c)(n-c)(n−c)个 0,那么该位上的汉明距离为c∗(n−c)c*(n-c)c∗(n−c)class Solution:原创 2021-05-28 14:54:02 · 55 阅读 · 0 评论 -
leetcode 461. 汉明距离
2021.5.27,leetcode 每日一题461. 汉明距离用 python 写出来了class Solution: def hammingDistance(self, x: int, y: int) -> int: a = x^y a = str(bin(a)) ans = 0 # print(a,type(a)) for ch in a: if ch=='1':原创 2021-05-27 10:47:40 · 63 阅读 · 0 评论 -
leetcode 1707与数组中元素的最大异或值
leetcode 刷题5.23的每日一题题是1707. 与数组中元素的最大异或值,最近异或的题目真滴很多。这道题可以采用字典树的方法。字典树不太会,先总结在这里吧!字典树,又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。字典树的优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。字典树的性质:根节点不包含字符,除根节点外每一个节点都只原创 2021-05-24 19:59:48 · 70 阅读 · 0 评论 -
leetcode 664. 奇怪的打印机
leetcode 664. 奇怪的打印机动态规划!!dp[i][j]是字符串区间[i,j]中需要的最少的打印次数。首先初始化 dp[i][j]为很大的值。打印一个字符串需要 1 次,即为 dp[i][i] = 1当字符串长度大于等于 2 时,判断两端字符是否相等?即为s[i] == s[j] ?如果 s[i] == s[j] 那么 dp[i][j] = dp[i][j-1]如果 s[i] != s[j] 那么就需要遍历一下,在[i,j-1]中找一个分割点 k,找到能够使得两边之和最小的分割原创 2021-05-24 11:38:14 · 131 阅读 · 0 评论 -
python sorted()
刷题总结今天做了一道 leetcode 的每日一题 692. 前 K 个高频单词题目本身并不难,如果会 python 中 sorted 的使用,这道题十分简单。我的思路是建立一个字典,然后把每个 value 排个序,直接输出前 k 个 key 值即可。但是这样就忽略了当 value 值相同时,key 值也需要排序。查看题解,发现了 sorted 的使用比想象中更加强大。在此总结一下。sorted() 函数对所有可迭代对象都可以进行排序操作,可迭代对象包括列表、字典等。sorted 可以用于对集合原创 2021-05-20 23:03:57 · 146 阅读 · 0 评论