leetcode编程题解析
对编程题得解析进行汇总
bug制造工程师.
互相学习 共同进步!!!
展开
-
javascript练习题之回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1: 输入: 121 输出: true示例 2: 输入: -121 输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3: 输入: 10 输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数解析一:根据题目,所谓的回文数即指正序和倒序读都是一样的整数,即将数字前后整体颠倒原创 2020-05-23 23:52:10 · 383 阅读 · 1 评论 -
javascript练习题之盛水最多的容器
题目:示例:输入:[1,8,6,2,5,4,8,3,7]输出:49解析:根据图形可以看出容器能够容纳水的值为两个柱子的距离和柱子最低高度决定的。min( arr[j] , arr[i]) * (j-i);所以可以利用循环依次判断各个范围的值var maxArea = function(height) { let res =0; let cap =0 for(let i =0;i<height.length-1;i++){原创 2020-05-23 22:51:37 · 246 阅读 · 0 评论 -
javascript练习题之整数转罗马数字
题目:原创 2020-05-23 21:16:59 · 367 阅读 · 0 评论 -
javascript练习题之最长公共前缀
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例一:输入: [“flower”,“flow”,“flight”]输出: “fl”示例二:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。解析:根据题意,需要找出最长的公共前缀,也就是从每个字符的开始一一向后比较,首先得需要一个字符用来做基准,利用它和其他字符作比较。var longestCommonPrefix = function(strs) { /原创 2020-05-23 18:07:04 · 257 阅读 · 0 评论 -
javascript练习题之罗马数字转成整数
题目:示例一: 输入: “III” 输出: 3示例二:原创 2020-05-23 17:35:24 · 229 阅读 · 0 评论 -
javascript练习题之整数反转
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例一: 输入: 123输出: 321示例二: 输入:-123输出:-321示例三: 输入:120输出:21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。解析一:利用字符串split()方法将字符串分隔成字符串数组,然后利用数组的reverse()和join()反转再连接成字符串;代码如下var原创 2020-05-19 19:54:06 · 293 阅读 · 0 评论 -
javascript练习题之z字形变换
题目:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”解析:重点看需要输出的结果!!!!!根据上面的图片可知,其就是需要将字符拆开分别放在 第一列、第二列、第三列、第二列、第一列…然后将放在第一列、第二列、第三列的字符依次进行合并。要点:定义一个索引index判断当时位于的列数,当index0,位原创 2020-05-18 18:51:38 · 150 阅读 · 0 评论 -
javascript练习题之寻找两个正序数组的中位数
题目:给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例一:nums1 = [1, 3],nums2 = [2]则中位数是 2.0示例二:nums1 = [1, 2],nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5分析:要求两个数组的中位数,就需要将两个数组合并,然后将合并后的数组升序,进而才能求出原创 2020-05-18 17:32:29 · 792 阅读 · 0 评论 -
javascript练习题之无重复字符的最长字串
题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例一:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例二:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例三:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。解析一:根据题目可知,原创 2020-05-18 16:08:07 · 311 阅读 · 0 评论 -
javascript练习题之两数之和
题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9,因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解析一:先利用用循环,通过做差(target-nums[i])求解出另外一个值,然后判断该值是否在nums中且不能等于nums[i];原创 2020-05-18 15:28:34 · 459 阅读 · 0 评论 -
javascript练习题之给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例:输入: [2,2,1]输出: 1解析一:通过循环来判断每个数出现的次数,然后将次数为1的数输出var singleNumber =function(nums){ //声明一个空对象用于记录 var obj={}; for(var i=0;i<nums.length;i++){ //此时读取对象的属性需要用[] if(!obj[nums[i]]){ obj[nums[i]] =1; } else{ obj[nums[i]]+=原创 2020-05-15 14:42:43 · 1878 阅读 · 1 评论