
力扣题库
胡歌滴滴
胃不好
展开
-
力扣之两个数组的交集(给定两个数组,编写一个函数来计算它们的交集。)
力扣之两个数组的交集1题目描述 : 给定两个数组,编写一个函数来计算它们的交集样例输入 示例 : 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]; 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4]说明: 输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。var intersection = function(nums1, nums原创 2020-09-16 13:58:10 · 1271 阅读 · 1 评论 -
力扣之单词规律(给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。)
单词规律题目描述 : 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律示例 :示例 : 输入: pattern = "abba", str = "dog cat cat dog" 输出: true 输入:pattern = "abba", str = "dog cat cat fish" 输原创 2020-09-13 15:39:16 · 1601 阅读 · 0 评论 -
力扣之缺失数字(给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。)
缺失数字题目描述 : 给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。 示例 : 输入: [9,6,4,2,3,5,7,0,1] 输出: 8var missingNumber = function(nums) { nums.sort(function(a , b){ return a - b; }) for(var i = 0 ; i &l原创 2020-09-12 14:34:03 · 557 阅读 · 0 评论 -
力扣之丑数(只包含质因数 2, 3, 5 的正整数。)
丑数题目描述 : 编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数将传入的num循环就好了var isUgly = function(num) { if (num === 0) return false while (num !== 1) { if (num % 2 === 0) num = num / 2; else if (num % 3 === 0) num = num / 3; else if (num % 5原创 2020-09-12 14:11:22 · 1360 阅读 · 0 评论 -
力扣之各位相加(给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。)
各位相加题目描述 : 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。/* 示例 : 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。 */ var addDigits = function(num) { if(num.toString().length === 1) return num; num = num + "";原创 2020-09-12 10:29:55 · 2435 阅读 · 0 评论 -
力扣之有效的字母异位词(给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词)
字母异位词题目描述 : 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。解题思路 : 要满足字母异位词的条件,首先两个字符串的长度一定是相等的。其次,将字母按照ASCII码排序之后,两个字符串一定是一样的。详细见代码var isAnagram = function(s, t) { if (s.length !== t.length) return false; var arr1 = [] var arr2 = []; //将字原创 2020-09-12 08:14:11 · 728 阅读 · 0 评论 -
力扣题库之快乐数
快乐数编写一个算法来判断一个数 n 是不是快乐数题目描述 : 快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 // 如果 n 是快乐数就返回 True ;不是,则返回 False 。示例 :示例 : 输入:19 输出:true 解释: 1^2 + 9^2 = 82 8^2 + 2^2 = 68原创 2020-09-05 18:04:59 · 269 阅读 · 0 评论 -
力扣题库之阶乘后的零
给定一个整数 n,返回 n! 结果尾数中零的数量。var trailingZeroes = function(n) { //求阶乘 var res = 1 for( var i = 2 ; i <= n ; i ++){ // if( i % 2 === 0 || i % 5 === 0){ res *= i // } } //将阶乘的值转化为字符串,方便遍历 var str = res.原创 2020-09-01 21:49:22 · 186 阅读 · 0 评论 -
JS力扣题目解析之整数反转
JS力扣题目解析之整数反转-讲解都在注释里面,看不懂就改行吧// 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 var reverse = function(x){ //思路:想要将有符号整数反转,可以将其转为数组形式进行反转,在将其拼接为字符串返回 //先将该数字转为绝对值,在最后判断正负 var s = Math.abs(x) console.log(s) //传入的数字为number类型,应该先转为字符串 v原创 2020-08-16 10:51:26 · 311 阅读 · 0 评论 -
力扣题库之多数元素
力扣题库之多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路 : 所谓多数元素是在数组中存在次数大于一半的元素,那么该数一定只有一个var majorityElement = function(nums) { if(nums.length === 1){ return nums[0] } //n为多数元素最小重复的次数 va原创 2020-09-01 12:56:09 · 234 阅读 · 0 评论 -
力扣题库之Excel表列名称
力扣题库之Excel表列名称给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB 注 : A 的ASCLL码为65 var convertToTitle = function(n) { var res=""; while(n > 0){原创 2020-08-30 13:21:50 · 240 阅读 · 0 评论 -
力扣题库之两数之和2
力扣题库之两数之和2给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明 : 返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例 : 输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 i原创 2020-08-27 20:09:53 · 229 阅读 · 0 评论 -
力扣题库之只出现一次的数字
力扣题库之只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。var singleNumber = function(nums) { //将数组从小到大排序 nums.sort(function(a, b) { return a - b }) //遍历数组 for( var i = 0 ; i < nums.length ; i += 2){ if( nums[i] !原创 2020-08-26 21:55:48 · 164 阅读 · 0 评论 -
力扣题库之买卖股票的最佳时机
力扣题库之买卖股票的最佳时机问题 : 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。示例 : 示例 : 输入: [7,1,5,3,6,4] 输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需原创 2020-08-26 19:52:23 · 243 阅读 · 0 评论 -
力扣之合并两个有序数组
合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例 : 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输原创 2020-08-25 09:05:33 · 435 阅读 · 0 评论 -
力扣题库之爬楼梯
力扣题库之爬楼梯题目 : 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。思路 :对于这道题目 ,有n阶台阶,全1有一种方法,最多可以踩 n / 2 个 2阶台阶设 有 x 个2阶台阶 , 那么 1 阶台阶的个数为 n - x 。排列组合有 C(n , x)种排列方式计算公式 : 设 有 x 个2阶台阶 , 那么 1 阶台阶的个数为 n - x 。排列组合有 C(n , x)种排列方式原创 2020-08-24 21:20:57 · 262 阅读 · 0 评论 -
力扣题库之x的平方根
力扣题库之x的平方根题目 : 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。//思路 : 想不出来还有啥好办法,遍历吧 。因为是求平方根,且 x 是非负整数 那么最大范围可以是 x / 2 var mySqrt = function(x) { if(x === 0){ return 0 } if( x === 1){ return原创 2020-08-23 17:15:30 · 235 阅读 · 0 评论 -
力扣题库之二进制求合
力扣题库之二进制求合对于这道题目,虽然使用字符串API实现较为简单,但当字符串长度超出计算机计算范围时,计算结果会失真。所以我的思路是 : 取两个字符串较短的那个长度为遍历对打长度(length)。将这一段先相加,考虑0-1相加有4中情况 即 0,1,2,3. index记录下标 0,1时index为0 表示无进位。 2,3时 index为1,表示有进位在考虑两个字符串长度相等和不等的情况下,多余的那节字符串是否可以直接拼接大到盛放结果的新数组中// 给你两个二进制字符串,返回它们的和(用二进制原创 2020-08-23 09:48:51 · 263 阅读 · 0 评论 -
力扣题库之数值加一
力扣题库之数值加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。对于这道题目,乍一看很简单,其实是有很多坑的,如果使用数组转字符串加1的话 因为计算机转数字,如果数据长度过大会导致数据失真,而简单的使用数组位数加一,那么这就没有考虑到满十进一的情况了。所以最后的思路是原创 2020-08-22 16:35:51 · 325 阅读 · 0 评论 -
力扣题库之最后一个单词长度
力扣题库之最后一个单词长度给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词如果不存在最后一个单词,请返回 0 。 说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符/* 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。 如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词 如果不存在最后一个单词,请返回 0 。 说明:原创 2020-08-22 14:54:24 · 233 阅读 · 0 评论 -
力扣题库之最大子序和
力扣题库之最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例: 输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。参考了一些前辈的思想 ,对于这类动态规划的题目,(针对本题)只要计算每段数据的和,将每段的和进行比较,取最大值,即为最大子序和var maxSubArray = function (nums) { // 定义变量记录,当前最大子原创 2020-08-22 09:08:03 · 244 阅读 · 0 评论 -
力扣题库之外观数列
力扣题库之外观数列给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:111211211111221第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描述前一项,这个数是 21 即 “一个 2 一个 1 ” ,记作原创 2020-08-20 08:24:05 · 198 阅读 · 0 评论 -
力扣题库之搜索插入位置
力扣题库之搜索插入位置// 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中, // 返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。 // 例:[1,3,5,6], 5 返回2 //先使用indexof方法查找数组是否含有target,如果有直接返回索引,如果没有,遍历数组找到比target大的,返回值就是下标减1 var searchInsert = function(nums, target) { var ind原创 2020-08-19 21:01:13 · 281 阅读 · 0 评论 -
力扣题库之删除元素
力扣题库之删除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素思路:遍历数组,如果存在与val不相等的数据,那么将该位赋值给nums[i],i在判定配件成功时自加var removeElement = function(nums, val) { var res = 0;原创 2020-08-18 22:02:34 · 420 阅读 · 0 评论 -
力扣题库之删除数组重复项
力扣题库之删除数组重复项题目 : 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。其实测试用例才发现,这道题知识让我们将不重复数组想排列到前面,并输出不重复的项的个数,在不重新开辟内存空间的情况下,想要删除重复数据几乎是不可能的(至少我不会)。读懂题意之后就可以开始编写代码了,如下: //注意 : 这里所要求的都是有序数组 var r原创 2020-08-18 20:33:19 · 465 阅读 · 0 评论 -
力扣题库之判断是否为有效括号
力扣题库之判断是否为有效字符串// 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 // 有效字符串需满足: // 左括号必须用相同类型的右括号闭合。 // 左括号必须以正确的顺序闭合。 // 注意空字符串可被认为是有效字符串。 //思路 : 什么样的括号是合理的? 一组括号里面如果有其他的括号,那么也必须是一组或多组的 括号一定是成对出现的 // ASCLL码表 : 各个括号的码值: (:40原创 2020-08-16 22:05:17 · 375 阅读 · 0 评论 -
力扣题库之最长公共前缀
最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。-基本上每一步都有解释了,一些易错的地方我一般都用console.log()在控制台查看了,这些地方可以多注意// 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。所有输入只包含小写字母 a-z 。 //输入的是字符串数组,所以要先遍历数组,将字符串全部取出 var longestCommonPrefix = function(arr) { //将原创 2020-08-16 15:20:56 · 139 阅读 · 0 评论 -
力扣题库之罗马数字转整数
力扣题库之罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX +原创 2020-08-16 12:11:15 · 255 阅读 · 0 评论 -
力扣题库解析之回文数
js判断回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。//思路:转为数组形式reverse之后判断 var isPalindrome = function(x) { //如果传入的数字为负数,那么直接return flase if(x < 0){ return false } else if(x === 0){ //如果为0 ,一定是回文数 return true; }原创 2020-08-16 11:14:27 · 285 阅读 · 0 评论