LeetCode
快乐风男hasaki
希望一切都值得
展开
-
LeetCode第200场周赛Java双百解法
1534. 统计好三元组给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。0 <= i < j < k < arr.length|arr[i] - arr[j]| <= a|arr[j] - arr[k]| <= b|arr[i] - arr[k]| <= c其中 |x| 表示 x 的绝对值。返回 好三元组的原创 2020-08-03 15:33:45 · 479 阅读 · 0 评论 -
LeetCode第31场双周赛题解
5456.在区间范围内统计奇数数目给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。该题如果low和high都为偶数,返回(high-low)/2。若low和high有一个不为偶数,那么便+1;...原创 2020-07-31 15:34:34 · 888 阅读 · 0 评论 -
运用位运算压缩二维坐标(x,y)的技巧及原理
本文参考链接:博客适用场景需要用到二维坐标的如(x,y)的情况的,且x与y范围在int内的。使用原因内存小易理解理解后使用方便方便储存在set这样的集合中原理题目有很多对坐标,普通方法可以用对象或者Pair保存,而也可以通过位运算压缩保存。在64位系统中,int型数据是32位的,long long类型是64位的,那么我们可以让前32位保存一个坐标,后32位保存一个坐标。编码(encode):先将x与y强转成为long long类型,然后将x左移32位(低位补零),然后在异或y,这原创 2020-07-11 16:35:50 · 809 阅读 · 0 评论 -
并查集算法讲解:LeetCode 990. 等式方程的可满足性
题目链接:990. 等式方程的可满足性分析:题目意思很简单,给你一个字符串数组,根据字符串数组判断其中式子是否可以通过定义变量(既代值)成立。我看到这个题,当时便分析出这是一道图的连通性的题目,可以使用并查集做。并查集算法意思很简单,思维很巧妙,设置一个桶数组当做集合,此时每个集合中只有自己本身一个元素(既数组值指向数组下标值)。然后通过给的图的联通条件,不断的将集合归并的算法。我们将每个集合抽象为一个元素,该元素代表着一个集合,而该集合中的其他元素全部指向该元素,从而完成集合的划分。根据上述分析原创 2020-06-09 00:20:06 · 124 阅读 · 0 评论 -
最长回文子串(dp,中心扩张)
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例示例1输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例2输入: "cbbd"输出: "bb"思路DP思路读题动态规划一般用于解决最优解问题,并且回文串正好满足dp,所以可用dp。推导状态转移方程先尝试用贪心规律作为状态,但是无法根据上一步推导下一步。换为左哨兵i,与右哨兵j是否相等,易推dp[i][j]=dp[i+1][j-1]^(s[i]原创 2020-05-24 22:31:05 · 140 阅读 · 0 评论