
LeetCode
LeetCode个人解题专栏,分享算法、面试题的个人解题思路。
W.Lionel.Esaka
陌生人,也祝你年少有为,前程似锦。
展开
-
LeetCode 算法 每日一题 342.4的幂
342.4的幂题目描述给定一个整数,写一个函数来判断它是否是4的幂次方。如果是,返回true;否则,返回false。整数n是4的幂次方需满足:存在整数x使得n == 4x示例1输入:n = 16输出:true示例2输入:n = 5输出:false示例3输入:n = 1输出:true提示-231 <= n <= 231 - 1你能够不使用循环/递归解决此问题吗?代码演示Java 位运算Java 2n&(2n-1)=0 提交结果执行原创 2021-07-01 00:09:19 · 519 阅读 · 1 评论 -
LeetCode 算法 每日一题 1486.数组异或操作
1486. 数组异或操作题目描述给你两个整数,n和start 。数组nums定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回nums中所有元素按位异或(XOR)后得到的结果。示例1输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。“^” 为按位异或 XOR 运算符。示例2输入:n = 4, start =原创 2021-05-14 00:21:15 · 901 阅读 · 0 评论 -
LeetCode 算法 每日一题 1442.形成两个异或相等数组的三元组数目
3.无重复字符的最长子串题目描述给你一个整数数组arr。现需要从数组中取三个下标i、j和k,其中(0 <= i < j <= k < arr.length)。a和b定义如下:a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1]b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k]注意:^ 表示按位异或操作。请返回能够令a == b成立的三元组 (i,j,k) 的数目。示例1输入:arr = [2,3,1,原创 2021-05-29 00:37:32 · 875 阅读 · 0 评论 -
LeetCode 算法 每日一题 993.二叉树的堂兄弟节点
993. 二叉树的堂兄弟节点题目描述在二叉树中,根节点位于深度0处,每个深度为k的节点的子节点位于深度k+1处。如果二叉树的两个节点深度相同,但父节点不同 ,则它们是一对堂兄弟节点。我们给出了具有唯一值的二叉树的根节点root,以及树中两个不同节点的值x和y。只有与值x和y对应的节点是堂兄弟节点时,才返回true。否则,返回false。示例1输入:root = [1,2,3,4], x = 4, y = 3输出:false示例2输入:root = [1,2,3,null,4,n原创 2021-05-17 22:20:03 · 839 阅读 · 0 评论 -
LeetCode 算法 每日一题 477.汉明距离总和
10.正则表达式匹配题目描述两个整数的汉明距离指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。示例1输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.提示原创 2021-05-29 00:07:35 · 821 阅读 · 0 评论 -
LeetCode 算法 每日一题 421.数组中两个数的最大异或值
421.数组中两个数的最大异或值题目描述给你一个整数数组nums,返回nums[i] XOR nums[j]的最大运算结果,其中0 ≤ i ≤ j < n。进阶:你可以在O(n)的时间解决这个问题吗?示例1输入:nums = [3,10,5,25,2,8]输出:28解释:最大运算结果是 5 XOR 25 = 28.示例2输入:nums = [0]输出:0示例3输入:nums = [2,4]输出:6示例4输入:nums = [8,10,2]输出:10示例原创 2021-05-16 02:16:29 · 939 阅读 · 0 评论 -
LeetCode 算法 每日一题 231.2的幂
231.2的幂题目描述给你一个整数n,请你判断该整数是否是 2 的幂次方。如果是,返回true;否则,返回false。如果存在一个整数x使得n == 2x,则认为 n 是 2 的幂次方。示例1输入:n = 1输出:true解释:20 = 1示例2输入:n = 16输出:true解释:24 = 16示例3输入:n = 3输出:false示例4输入:n = 4输出:true示例5输入:n = 5输出:false提示-231 <= n <原创 2021-05-30 11:07:19 · 881 阅读 · 0 评论 -
LeetCode 算法 每日一题 206.反转链表
206.反转链表题目描述给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例1输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例2输入:head = [1,2]输出:[2,1]示例3输入:head = []输出:[]提示 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000代码演示Java 递归方法public class OneQuestionPe原创 2021-05-17 00:44:16 · 952 阅读 · 0 评论 -
LeetCode 算法 每日一题 13.罗马数字转整数
13. 罗马数字转整数题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数原创 2021-05-08 00:20:55 · 833 阅读 · 1 评论 -
LeetCode 算法 每日一题 12.整数转罗马数字
12.整数转罗马数字题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字原创 2021-05-14 23:35:53 · 918 阅读 · 0 评论 -
LeetCode 算法 每日一题 11.盛最多水的容器
11.盛最多水的容器题目描述给你n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai)和 (i,0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。你不能倾斜容器。示例1输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例2输入:height =原创 2021-05-29 00:17:06 · 847 阅读 · 1 评论 -
LeetCode 算法 每日一题 10.正则表达式匹配
10.正则表达式匹配题目描述给你一个字符串s和一个字符规律p,请你来实现一个支持.和*的正则表达式匹配。.匹配任意单个字符*匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例1输入:s = “aa” p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示例2输入:s = “aa” p = “a*”输出:true解释:因为 ‘*’ 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 ‘a’。因此,字符串原创 2021-05-29 00:18:05 · 802 阅读 · 0 评论 -
LeetCode 算法 每日一题 4.寻找两个正序数组的中位数
4.寻找两个正序数组的中位数题目描述给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例1输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例2输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例3输入:原创 2021-05-07 00:27:50 · 742 阅读 · 1 评论 -
LeetCode 算法 每日一题 3.无重复字符的最长子串
3.无重复字符的最长子串题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例2输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例3输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“原创 2021-05-29 00:16:25 · 758 阅读 · 0 评论 -
LeetCode 算法 每日一题 2.两数相加
2.两数相加题目描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例1输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例2输入:l1 = [0], l2 = [0]输出:[0]示例3输入:l1 = [9,9,9,9,9,9,9],原创 2021-05-17 23:27:59 · 885 阅读 · 0 评论 -
LeetCode 算法 每日一题 1.两数之和
LeetCode每日一题1.两数之和1.两数之和题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例2输入:nums原创 2021-05-02 23:46:19 · 903 阅读 · 0 评论