leetcode
I have a lemon
这个作者很懒,什么都没留下…
展开
-
剑指offer(JavaScript)刷题记录01——数组中重复的数字
剑指 Offer 03. 数组中重复的数字难度:简单找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000解题思路:我用了三种方法来解题:哈希表,排序查重,原数组上改动这三种方法也是原创 2021-01-27 21:45:54 · 129 阅读 · 0 评论 -
leetcode刷题记录19——旋转图像(javascript)
48. 旋转图像难度:中等给定一个n×n的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9...原创 2021-01-26 19:09:50 · 123 阅读 · 0 评论 -
leetcode刷题记录18——缺失的第一个正数
41. 缺失的第一个正数难度:困难给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:0 <= nums.length <= 300-231 <= ...原创 2021-01-20 16:27:56 · 101 阅读 · 0 评论 -
leetcode刷题记录17——组合综合II
难度:中等给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集为:[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]]...原创 2021-01-13 19:59:43 · 112 阅读 · 0 评论 -
leetcode刷题记录16——组合总和
难度:中等给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例2:输入:candidates = [2,3,5...原创 2021-01-13 19:23:37 · 198 阅读 · 0 评论 -
leetcode刷题记录15——删除排序数组中的重复项 II
80. 删除排序数组中的重复项 II难度:中等给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,.原创 2021-01-12 10:44:26 · 139 阅读 · 0 评论 -
leetcode刷题记录14——移动零
难度:简单给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路:这一题可以只扫描数组一遍,不断的用原创 2021-01-11 16:46:12 · 119 阅读 · 0 评论 -
leetcode刷题记录13——移除元素
难度:简单给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = ...原创 2021-01-11 16:19:49 · 193 阅读 · 0 评论 -
leetcode记录12——删除排序数组中的重复项
难度:简单给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新...原创 2021-01-11 15:10:49 · 90 阅读 · 0 评论 -
leetcode刷题记录11——四数之和
难度:中等给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [...原创 2021-01-11 14:19:10 · 104 阅读 · 1 评论 -
leetcode刷题记录10——最接近的三数之和
难度:中等给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3<= nums[i]<...原创 2021-01-11 11:09:21 · 151 阅读 · 0 评论 -
leetcode刷题记录09——三数之和
难度:中等给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.lengt...原创 2021-01-10 17:30:05 · 154 阅读 · 0 评论 -
leetcode刷题记录08——盛水最多的容器(Java和JavaScript)
11. 盛最多水的容器难度:中等Java答案:class Solution { public int maxArea(int[] height) { int l=0,r=height.length-1,res=0; while(l<r){ res=Math.min(height[l],height[r])*(r-l)>res?Math.min(height[l],height[r])*(r-l):res;原创 2020-12-27 10:58:13 · 6740 阅读 · 0 评论 -
leetcode刷题记录07——回文数(Java和JavaScript)
回文数难度:简单判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。这题非常简单Java答案class Solution { public boolean is.原创 2020-12-20 20:32:48 · 115 阅读 · 0 评论 -
leetcode刷题记录06——字符串转换整数 (atoi)(Java和JavaScript)
字符串转换整数 (atoi)难度:中等请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如.原创 2020-12-19 21:41:55 · 143 阅读 · 1 评论 -
leetcode刷题记录05——整数反转(Java和JavaScript)
7. 整数反转难度:简单给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble...原创 2020-12-18 10:00:31 · 150 阅读 · 0 评论 -
leetcode刷题记录05——Z字形变换(Java和JavaScript)
6. Z 字形变换难度:中等将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRow...原创 2020-12-17 15:53:19 · 132 阅读 · 0 评论 -
leetcode刷题记录04——最长回文子串(Java和JavaScript)
5. 最长回文子串难度:中等给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substringJava代码:class Solution { ..原创 2020-12-15 16:02:57 · 128 阅读 · 0 评论 -
leetcode刷题记录03——无重复字符的最长子串(Java和JavaScript)
3. 无重复字符的最长子串难度:中等给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意...原创 2020-12-15 10:46:47 · 121 阅读 · 0 评论 -
leetcode刷题记录02——两数相加(Java&JavaScript)
2. 两数相加难度:中等给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(Le...原创 2020-12-14 15:18:00 · 153 阅读 · 0 评论 -
leetcode刷题记录01——两数之和(Java和JavaScript)
1. 两数之和难度:简单给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob...原创 2020-12-13 20:07:40 · 140 阅读 · 0 评论