JS
小嬴布菱
这个作者很懒,什么都没留下…
展开
-
leetcode 56. 合并区间
leetcode LeetBook 数组和字符串56. 合并区间我的思路之前做过类似的题目。首先排序,JS 的排序如果直接intervals.sort()并不能按照我们希望的样子排序。会有 15 排在 2 前面的情况。所以需要改写一下 sort 方法。排序结束之后,判断相邻的两个区间是否有重复的部分,如果有重复的部分那么就删除这两个区间,插入新的区间。并且这里注意要 i–进行回退,不然会发现有一些区间并没有被操作过。/** * @param {number[][]} intervals * @r原创 2021-06-09 13:35:14 · 132 阅读 · 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 · 117 阅读 · 0 评论 -
codewars 5 kyu PaginationHelper
codewars 5 kyu PaginationHelper我的题解构造函数并完成方法。// TODO: complete this object/class// The constructor takes in an array of items and a integer indicating how many// items fit within a single pagefunction PaginationHelper(collection, itemsPerPage) { t原创 2021-06-08 10:19:41 · 298 阅读 · 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 · 246 阅读 · 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 · 79 阅读 · 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 · 136 阅读 · 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 · 61 阅读 · 0 评论 -
codewars 5 kyu Maximum subarray sum
codewars 5 kyu Maximum subarray sum我的思路最开始的思路是使用前缀和,找到最大和最小的前缀和一减不就行了,然后发现我这么写不对劲,有可能最小的前缀和在最大的前缀和的后面。var maxSequence = function (arr) { // ...这一版我也不知道自己当时是怎么想的了。也不知道写了点啥。唉 console.log(arr); if (arr.length <= 1) return arr.length; var prefix原创 2021-06-03 21:22:58 · 107 阅读 · 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 · 124 阅读 · 0 评论 -
codewars 6 kyu Sort the odd
codewars 6 kyu Sort the odd题目大意给定一个数组,将其中的奇数排序,偶数的位置不变。我的思路创建两个新的数组 ans 和 odd。odd 数组,用于存奇数并排序;ans 为结果数组。先遍历一遍 array 数组,如果是奇数,将该数存入 odd 数组,并且存入对应位的 ans 存负无穷,否则 ans 存入遍历到的偶数。然后将 odd 中的数排序,最后遍历 ans 数组,如果该位为负无穷,将 odd 中第一位 shift 出并存到 ans。function sortArray原创 2021-06-02 22:49:45 · 127 阅读 · 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 · 118 阅读 · 0 评论 -
codewars 4ky Sum of Intervals
codewars 4ky Sum of Intervals题目大意:给定一个数组,这个数组是由如[3,5]这样的区间 Array 组成的,求区间的长度。如果区间之间有交叉,那么不重复计算交叉部分。如果给定的数组为:[[1,5],[2,6]],那么这个相当于是计算区间[1,6],这个区间的长度为 5。我的思路:将区间先进行排序(这个地方卡了很久,难受),排序后得到的有序区间,可以比较前一个区间的右端和后一个区间的左端,如果后一个区间的左端小于前一个区间的右端,证明这两个区间有交叉部分,那么合并这两个原创 2021-06-01 22:21:01 · 611 阅读 · 1 评论 -
leetcode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
leetcode 每日一题1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?我的思路对于 queries 中每个的 querie,都可以计算出最少吃的个数(等于天数)以及最多能吃到的个数(等于天数 × 每日最多能吃到的个数)。根据示例 2,可以思考出:如果我们计算出 candies 的前缀和,每个对应 querie[0]位置的前缀和正好在最大与最小之间,那么一定能吃到!然后就出现了第一个问题!示例中的第一个示例,由于[0,2,2]这个 querie 的 maxeat 为 4,mineat 为 2原创 2021-06-01 13:51:14 · 154 阅读 · 0 评论 -
codewars 6 kyu Replace With Alphabet Position
codewars 6 kyu Replace With Alphabet Position题目大意:给一个字符串,按顺序返回其中字母的号码,定义 a=1,b=2,……我的思路是,首先先把字符串中的大写转小写,然后移除标垫符号和空格。最开始的时候忘记考虑数字,错了一次,所以数字也是应该被移除的。接下来使用小写字母的 ASCII 码即可得到答案。注意空格。function alphabetPosition(text) { text = text .toLowerCase() .rep原创 2021-05-31 11:01:28 · 120 阅读 · 0 评论 -
codewars 6kyu Does my number look big in this?
codewars 6kyu Does my number look big in this?题目大意:判断一个数是否是水仙花数。function narcissistic(value) { // Code me to return true or false var temp = String(value).split(""); var ans = 0; var n = temp.length; for (let i = 0; i < n; i++) { ans +=原创 2021-05-31 10:11:50 · 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 · 103 阅读 · 0 评论 -
codewars 5kyu Simple Pig Latin
codewars 5kyu Simple Pig Latin题目大意:把每个单词的第一个字母移到该单词的末尾,最后在单词末尾加上 ay,输出字符串。标点符号不进行处理。我的思路是先把每个单词以空格为分割存到一个列表里,对列表里每个单词进行处理,如果该词是标点符号,不做处理,否则就把该词的第一个字母移到该词的末尾,最后在单词末尾加上 ay 和空格,如果是最后一个单词,末尾不加空格。function pigIt(str) { //Code here var temp = str.split(" "原创 2021-05-30 16:47:15 · 165 阅读 · 0 评论 -
codewars 7kyu You‘re a square!
codewars 7kyu You’re a square!题目大意是判断一个数 n 是不是整数的平方。-1 => false0 => true3 => false4 => true25 => true26 => false我的代码就是简单判断一下。var isSquare = function (n) { // console.log(Math.pow(n,1/2)); if (n < 0) { return false;原创 2021-05-30 15:15:51 · 163 阅读 · 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 · 107 阅读 · 0 评论 -
codewars 6kyu Valid Braces
codewars 6kyu Valid Braces题目大意:给定一个由括号组成的字符串,判断这个字符串中的括号是否匹配。给几个例子:‘()’ >>true‘({)}’ >> flase‘{[()]}’ >>true首先想到堆栈!用到了今天刚刚学到的 for offunction validBraces(braces) { //TODO var temp = []; for (ch of braces) { if (ch == "("原创 2021-05-29 19:03:27 · 202 阅读 · 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 · 83 阅读 · 0 评论 -
codewars 6kyu Who likes it?
codewars 6kyu Who likes it?这个题没啥难度,就是根据题意输出字符串。function likes(names) { // TODO ans = ''; if(names.length == 0){ ans += 'no one likes this'; } else if(names.length == 1){ ans += names[0] + ' likes this'; }else if(names.length == 2){原创 2021-05-27 23:34:08 · 137 阅读 · 0 评论 -
codewars 7_kyu Is this a triangle
codewars 7_kyu Is this a triangle?题目大意:给定 3 个整数为三角形的三条边,判定这三条边能否组成一个三角形。我的解法就是高中数学判定一下。function isTriangle(a, b, c) { if (a + b > c && a + c > b && b + c > a) { return true; } return false;}没错,又到了公开处刑的环节,人家怎么都能一句话写出原创 2021-05-27 23:02:25 · 135 阅读 · 0 评论 -
codewars 7kyu Beginner Series #3 Sum of Numbers
codewars7kyu Beginner Series #3 Sum of Numbers这个题意思是,给两个数 a,b,然后计算从区间[a,b]各项之和。没错,就是一个等差数列求和嘛!但是 a 和 b 不一定是有序的,所以要检查一下大小。但是,我最开始天真的以为负数需要特意地处理一下!这是改进后的代码:function getSum(a, b) { //Good luck! var left = Math.min(a, b); var right = Math.max(a, b);原创 2021-05-27 22:54:36 · 278 阅读 · 0 评论 -
codewars 6kyu Multiples of 3 or 5
codewars 6kyu Multiples of 3 or 5该题大意是计算小于number 的数中能够整除3或整除5的数 的和。如果一个数既能被3整除也能被5整除,那么这个数只计算一次。我写的代码:function solution(number) { var ans = 0; for (let i = 3; i < number; i++) { if (i % 15 == 0) { ans += i; } else if (i % 3 == 0) {原创 2021-05-27 22:45:11 · 158 阅读 · 0 评论 -
codewars 7kyu Vowel Count
codewars 7kyu Vowel Count这个题的意思是,给一个字符串,计算字符串中元音字母( aeiou )的个数,输入只包括小写字母和空格。我写的:function getCount(str) { var vowelsCount = 0; // enter your majic here for (let i = 0; i < str.length; i++) { if ( str[i] == "a" || str[i] == "e" |原创 2021-05-27 22:25:11 · 166 阅读 · 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 · 75 阅读 · 0 评论