![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
一筐大白菜啊
https://tl.beer
展开
-
【MYSQL】查找重复的电子邮箱
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:根据以上输入,你的查询应返回以下结果:说明:所有电子邮箱都是小写字母。方法一:select Email from Person group by email having count(email)>1 执行用时:345 ms已经战胜 69.06 % 的 mysql 提交记录方法二:select...原创 2019-03-04 23:23:42 · 579 阅读 · 0 评论 -
【JS】 存在重复元素 II #数组 #哈希表 Easy
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。输入: nums = [1,2,3,1], k = 3 , 输出: true输入: nums = [1,0,1,1], k = 1 , 输出: true输入: nums = [1,2,3,1,2,3], k = 2 , 输...原创 2018-11-27 23:41:01 · 197 阅读 · 0 评论 -
【JS】 Excel表列序号 #数学 Easy
给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2…Z -> 26AA -> 27输入: “A” , 输出: 1输入: “AB” , 输出: 28输入: “ZY” , 输出: 701输入: “XYZ” , 输出: 16900解法一:这道题在一个月前刚刷 LeetCode 时就有遇到,不过当时没...原创 2018-12-04 23:49:54 · 573 阅读 · 0 评论 -
【JS】重复的子字符串 #字符串 Easy
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。输入: “abab” ,输出: True ,解释: 可由子字符串 “ab” 重复两次构成。输入: “aba” ,输出: False输入: “abcabcabcabc” ,输出: True ,解释: 可由子字符串 “abc” 重复四次构成。 (或者子字符...原创 2018-12-04 23:16:53 · 406 阅读 · 0 评论 -
【JS】字符串相加 #数学 Easy
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。输入 num1 = “0” , num2 = “0” 输出: “0”输入 num1 = “999” , num2 = “9” 输出: “1008”注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 Big...原创 2018-12-02 23:31:25 · 1545 阅读 · 0 评论 -
【JS】亲密字符串 #字符串
给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。输入: A = “ab”, B = “ba” , 输出: true输入: A = “ab”, B = “ab” , 输出: false输入: A = “aa”, B = “aa” , 输出: true输入: A = “aaaaaaa...原创 2018-11-30 13:20:15 · 271 阅读 · 0 评论 -
【JS】阶乘后的零 #数学 1乘到100/1000/10000 的积 末尾有几个零?
给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。解法一:阶乘,一个正整数的阶乘是所有小于及等于该数的正整数的积。示例:6! = 6 * 5 * 4 * 3 * 2 * 1 ...原创 2018-11-27 01:58:04 · 2301 阅读 · 0 评论 -
【JS】 快乐数 #哈希表 #数组
编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例:输入: 19输出: true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1...原创 2018-11-27 00:57:22 · 217 阅读 · 0 评论 -
【JS】平方数之和 #数学
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。输入: 5 ,输出: True ,解释: 1 * 1 + 2 * 2 = 5输入: 3 ,输出: False解法一:范围内求值 ,0 - C的平方根var judgeSquareSum = function(c) { var low=0, sum, heig=Math.c...原创 2018-11-26 23:40:43 · 756 阅读 · 0 评论 -
【JS】字符串中的单词数 #字符串 Easy
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。输入: “Hello, my name is John” , 输出: 5输入:var m = “, , , , a, eaefa” ,输出: 6解法一:统计字符与空格之间有多少次隔断就可以了var countSegments = function(...原创 2018-11-29 23:11:53 · 2688 阅读 · 1 评论 -
【JS】赎金信 #字符串 Easy
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct(“a”, “b”) -...原创 2018-11-29 22:21:24 · 299 阅读 · 0 评论 -
【JS】 验证回文串 #字符串 #双指针 Easy
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。输入: “A man, a plan, a canal: Panama” ,输出: true输入: “race a car” , 输出: false解法一:将字符串转成大写,删除字符串中数字和字母之外的符号,一个新变量 turn 接收翻转后的字符串, ...原创 2018-11-29 21:10:22 · 209 阅读 · 0 评论 -
【JS】 杨辉三角 #数组 Easy
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]解法一:创建三个数组来接收 ,上一个数组 upArr , 当前数组 downArr , 结果数组 result,利用杨辉三角的规律,当前值等于 上一行的左边+右边的值 upArr [j-1] + upArr ...原创 2018-11-30 21:39:16 · 252 阅读 · 0 评论 -
【JS】矩阵中的幻方 #数组 Easy
3 x 3 的幻方是一个填充有从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。给定一个由整数组成的 N × N 矩阵,其中有多少个 3 × 3 的 “幻方” 子矩阵?(每个子矩阵都是连续的)。输入:[[4,3,8,4],[9,5,1,9],[2,7,6,2]]输出: 1解释:下面的子矩阵是一个 3 x 3 的幻方:4389512...原创 2018-12-01 16:06:08 · 400 阅读 · 0 评论 -
【Go】 找到所有数组中消失的数字 #数组 Easy
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。输入:[4,3,2,7,8,2,3,1] , 输出:[5,6]解法一:一直都没找到解决方...原创 2018-12-07 00:06:52 · 203 阅读 · 0 评论 -
【Go】 最长连续递增序列 #数组 Easy
给定一个未经排序的整数数组,找到最长且连续的的递增序列。输入: [1,3,5,5,4,17] , 输出: 3 , 解释: 最长连续递增序列是 [1,3,5], 长度为3。输入: [2,2,2,2,2] , 输出: 1 , 解释: 最长连续递增序列是 [2], 长度为1。注意:数组长度不会超过10000。解法一:右边大于左边才算递增,等于和小于都不是递增遍历一次就知道答...原创 2018-12-06 22:42:20 · 592 阅读 · 0 评论 -
【Go】 最短无序连续子数组 #数组 Easy
给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。输入: [2, 6, 4, 8, 10, 9, 15] , 输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数组长度范围在 [1, 10,000]。输入的数组可能...原创 2018-12-06 17:52:28 · 198 阅读 · 0 评论 -
389. 找不同 #字符串
给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。输入:s = “abcd” , t = “abcde” ; 输出:e ;解释:‘e’ 是那个被添加的字母。解法一:比较简单的方法的是建 map,把 s 出现的字符记作 key、出现的次数记作 val遍历 t 表,把map中次数 小于...原创 2018-12-04 00:41:12 · 208 阅读 · 0 评论 -
【Go】643. 子数组最大平均数 I #数组
给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75注意:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,000]。解法一:这道题目很早就做出来了,不...原创 2018-12-06 15:23:33 · 231 阅读 · 1 评论 -
【JS】824. 山羊拉丁文 #字符串 Easy
山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加&quot;ma&quot;。例如,单词&quot;apple&quot;变为&quot;applema&quot;。如果单词以辅音字母开头(即非元音字母),移除第一个字符并将它放到末尾,之后再添加&quot;ma&quot;。例如,单词&quot;goat&原创 2018-12-05 23:39:03 · 162 阅读 · 0 评论 -
【JS】 反转字符串 II #字符串 Easy
给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。输入: s = “abcdefg”, k = 2 , 输出: “bacdfeg”要求:该字符串只包含小写的英文字母。给定字符串的长度和 k 在[1, 1...原创 2018-12-05 22:52:08 · 164 阅读 · 0 评论 -
【JS】 学生出勤纪录 I #字符串 Easy
给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符:‘A’ : Absent,缺勤‘L’ : Late,迟到‘P’ : Present,到场如果一个学生的出勤纪录中不超过一个’A’(缺勤)并且不超过两个连续的’L’(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤纪录判断他是否会被奖赏。输入: “PPALLP” , 输出: True输入: “PPALLL” ...原创 2018-12-05 22:24:09 · 285 阅读 · 0 评论 -
【JS】 翻转字符串里的单词 #字符串 Medium
给定一个字符串,逐个翻转字符串中的每个单词。示例:输入: “the sky is blue”,输出: “blue is sky the”.输入: " 1 2 3 4",输出: “4 3 2 1”.说明:无空格字符构成一个单词。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。进阶: 请...原创 2018-12-05 15:46:19 · 361 阅读 · 0 评论 -
【JS】数组中的K-diff数对 #数组 #双指针
给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.输入: [3, 1, 4, 1, 5], k = 2 ,输出: 2 , 解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。输入: [1, 2, 3, 4, 5], ...原创 2018-12-01 21:07:53 · 274 阅读 · 0 评论 -
【JS】 数组拆分 I #数组 Easy
给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。输入: [1,4,3,2] , 输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000].数组中的元素范围在...原创 2018-12-01 17:11:02 · 249 阅读 · 0 评论 -
【JS】到最近的人的最大距离 #数组 找最大距离
在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。返回最大距离输入:[1,0,0,0,1,0,1] 输出:2 ,解释:最大空座是3,向左边或者右边的人最大距离都是2输入:[0,0,0,1,0,1] 输出:3 ,解释:索引 0 距离 索引 3的最大距离是3输入:[0, 0, 0, 1, 0, 0, 0, 0, 1] 输出:3 ,解释:虽然中间...原创 2018-11-25 13:39:39 · 299 阅读 · 0 评论 -
【JS】 有效的山脉数组 #数组
给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[i]A[i] > A[i+1] > … >...原创 2018-11-25 11:11:45 · 443 阅读 · 0 评论 -
【JS】 翻转图像 #数组
给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,0]]输...原创 2018-11-23 00:20:22 · 281 阅读 · 0 评论 -
【JS】较大分组的位置 #数组
在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 S = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。最终结果按照字典顺序输出。示例 1: 输入: "abbxxxxzzy" ...原创 2018-11-24 01:55:19 · 213 阅读 · 0 评论 -
【JS】检测大写字母 #字符串
给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如&amp;quot;USA&amp;quot;。单词中所有字母都不是大写,比如&amp;quot;leetcode&amp;quot;。如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: “USA”输出: True示原创 2018-11-22 09:50:36 · 8100 阅读 · 0 评论 -
【JS】 求众数 #数组
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解法一:使用2个 for 循环,第一次循环记录每个元素的出现的次数,第二次循环找到出现次数最多的元素// 2018/11/2...原创 2018-11-22 00:12:05 · 1345 阅读 · 0 评论 -
【JS】 只出现一次的数字 #数组
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解法一:对数组顺序排序,然后找到索引 i 不等于 i + 1 也不等于 i - 1 的数返回// 2018...原创 2018-11-21 19:10:50 · 980 阅读 · 0 评论 -
【JS】 最长回文串 #哈希表
解法一:var longestPalindrome = function(s){ var arr = s.split(&quot;&quot;).sort(sortName) ,str=&quot;&quot; for(var i=1;i&amp;lt;arr.length;i++){ if(arr[i]==arr[i-1]){ str += (arr[i]原创 2018-11-21 15:47:43 · 275 阅读 · 0 评论 -
【JS】 500. 键盘行 #哈希表
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。American keyboard示例:输入: [“Hello”, “Alaska”, “Dad”, “Peace”]输出: [“Alaska”, “Dad”]注意:你可以重复使用键盘上同一字符。你可以假设输入的字符串将只包含字母。解法一:找到由字母构成的单词是否可以用键盘的其中一行打印出来?...原创 2018-11-21 14:48:37 · 190 阅读 · 0 评论 -
【JS】 寻找旋转排序数组中的最小值 #数组 #二分查找
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [0,1,2]输出: 0示例 3:输入: [2]输出: 2解法一:由于是可能旋转,那么就要先判断三...原创 2018-11-21 13:30:28 · 265 阅读 · 0 评论 -
【JS】搜索旋转排序数组 II #数组 #二分查找
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例 2:输入: nums = [2,5,6...原创 2018-11-21 11:34:59 · 168 阅读 · 0 评论 -
【JS】 搜索旋转排序数组 #数组 #二分查找
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], targ...原创 2018-11-21 10:56:20 · 333 阅读 · 0 评论 -
【JS】两个数组的交集 II #排序 #哈希 #双指针 #二分查找
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经...原创 2018-11-20 12:11:14 · 517 阅读 · 0 评论 -
【JS】有效的字母异位词 两个字符串的字符构成是否相同
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1: 输入: s = &quot;anagram&quot;, t = &quot;nagarma&quot; 输出: true示例 2: 输入: s = &quot;rat&quot;, t = &quot;car&quot; 输出: fa原创 2018-11-24 16:35:55 · 903 阅读 · 0 评论 -
【JS】移除元素 #数组
给定一个数组 nums 和一个值 val,移除所有数值等于 val 的元素,返回数组的新长度给定 nums = [3,2,2,3], val = 3输出: 2给定 nums = [0,1,2,2,3,0,4,2], val = 2输出: 5你可以在原地修改输入数组并在 O(1) 额外空间的条件下完成吗解法一:Object.splice(index, itemx) 移除元素va...原创 2018-11-25 10:12:52 · 116 阅读 · 0 评论