3 soxiuzi

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 13w+

Leetcode答题 --- 只出现一次的数字

题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例输入: [2,2,1]输出: 1思路方法一:通过判断数组中的元素indexOf和lastIndexOf相同,则该元素为唯一一个方法二:异或运算(方法来自题解)1、0和任何数做异或运算等于任何数 0 ^ n = n2、任何数和其自身做异或运算等于0 n ^ n = 0实现方法一var singleNumber = function(nums) { return nu

2020-07-07 11:18:36

Leetcode答题 --- 按奇偶排序数组

题目给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。思路分别过滤出奇数组成的数组和偶数数组的数组,再通过concat合并实现var sortArrayByParity = function(A) { return A.filter(item => item

2020-07-07 11:18:05

Leetcode答题 --- 独一无二的出现次数

题目给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/unique-number-of-occurrences思路先将整数数组去

2020-07-07 11:17:27

Leetcode答题 --- 键盘行

题目给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。示例输入: ["Hello", "Alaska", "Dad", "Peace"]输出: ["Alaska", "Dad"]思路列举出键盘中每一行的字母组成一个数组,然后遍历输入的单词列表来做过滤操作。注意大小写判断,统一转换为大写或者小写进行判断过滤实现var findWords = function(words) { let letterDic = ["qwertyuiop", "asdfghjkl", "zx

2020-07-06 09:10:19

Leetcode答题 --- 逐步求和得到正数的最小值

题目给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-value-to-ge

2020-07-06 09:09:27

Leetcode答题 --- 拼写单词

题目给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。来源:力扣(LeetCode)链接:https://le

2020-07-06 09:08:54

Leetcode答题 --- 两个数组的交集

题目给定两个数组,编写一个函数来计算它们的交集。示例输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]思路通过Array.filter进行过滤操作,返回第二个数组两个数组的交集,再通过new Set去重实现var intersection = function(nums1, nums2) { return [...new Set(nums1.filter(item => nums2.includes(item)))]};...

2020-07-03 11:52:35

Leetcode答题 --- Nim 游戏

题目你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/nim-game示例输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 

2020-07-03 11:51:48

Leetcode答题 --- 反转字符串

题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]思路第一种: 使用数组的高阶函数 reverse()第二种:遍历通过赋值结构交换值实现var reverseString =

2020-07-03 11:51:08

Leetcode答题 --- 非递增顺序的最小子序列

题目给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。注意,题目数据保证满足所有约束条件的解决方案是 唯一 的。同时,返回的答案应当按 非递增顺序 排列。来源:力扣(LeetCode)链接

2020-07-02 14:41:10

Leetcode答题 --- 山脉数组的峰顶索引

题目我们把符合下列属性的数组 A 称作山脉:A.length >= 3存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > .

2020-07-02 14:40:34

Leetcode答题 --- 反转字符串中的单词 III

题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 思路先将字符串转换成数组,通过数组的reverse方法逆序,再转换回字符串实现var reverseWords = function(s) { return s.split(' ').reduce((res, cur) => res + cur.sp

2020-07-02 14:39:42

Leetcode答题 --- 数组拆分 I

题目给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/array-partition-i著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。示例输入: [1,4,3,2]输出: 4解释: n

2020-07-01 09:25:35

Leetcode答题 --- 矩阵中的幸运数

题目给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。幸运数是指矩阵中满足同时下列两个条件的元素:在同一行的所有元素中最小在同一列的所有元素中最大来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lucky-numbers-in-a-matrix示例示例 1:输入:matrix = [[3,7,8],[9,11,13],[15,16,17]]输出:[15]解释:15 是唯一的幸运

2020-07-01 09:25:01

Leetcode答题 --- 生成每种字符都是奇数个的字符串

题目给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 。返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串,则返回其中任意一个即可。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-a-string-with-characters-that-have-odd-counts示例输入:n = 4输出:"pppz"解释:"pppz" 是一个满足题目要求的字符串,

2020-07-01 09:23:57

Leetcode答题 --- 有序数组的平方

题目给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]思路使用Array.map来对数组中的每一项元素进行平方处理,再对返回的新数组进行排序实现var sortedSquares = function(A) { return A.map(item => Math.pow(item, 2)).sort((a, b) => a - b)};...

2020-06-30 09:23:42

Leetcode答题 --- 两个数组间的距离值

题目给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。「距离值」 定义为符合此描述的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j] 满足 |arr1[i]-arr2[j]| <= d 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-

2020-06-30 09:23:15

Leetcode答题 --- 增减字符串匹配

题目给定只含 "I"(增大)或 "D"(减小)的字符串 S ,令 N = S.length。返回 [0, 1, ..., N] 的任意排列 A 使得对于所有 i = 0, ..., N-1,都有:如果 S[i] == "I",那么 A[i] < A[i+1]如果 S[i] == "D",那么 A[i] > A[i+1]来源:力扣(LeetCo

2020-06-30 09:22:39

Leetcode答题 --- 最大数值

题目编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。示例输入: a = 1, b = 2输出: 2思路使用Math.max实现var maximum = function(a, b) { return Math.max(a,b)};另一种解法获取两数的平均值,平均值再加上其中一个属减去平均值的绝对值实现var maximum = function(a, b) { let average = (a+b)/2 ret

2020-06-10 12:16:09

Leetcode答题 --- 判定字符是否唯一

题目实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例输入: s = "leetcode"输出: false 思路使用set.size和原string.length做对比看题解学到的其他方法:使用indexOf和indexLastOf来判断下标是否相等实现var isUnique = function(astr) { return new Set(astr).size === astr.length};...

2020-06-10 12:13:40

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。