hash
MrDing_CoolPig
这个作者很懒,什么都没留下…
展开
-
和可被K整除的子数组
974 和可被K整除的子数组来源:LeetCode这道题和523,560为一类题都用到了同余定理可以一起看下做下同余定理523 连续的子数组之和560 和为K的连续子数组- P[i] = A[0] + A[1] + A[2] + A[3] + ........ + A[i]- P[j] - P[i-1] = A[i] + A[i+1] + .......+A[j]- ( P[j]...原创 2020-04-13 20:27:07 · 254 阅读 · 0 评论 -
连续的子数组之和
523 连续的子数组之和LeetCode优雅的暴力如果直接用优雅一点的暴力应该可以跑过比较每一对子数组判断是否为k的倍数最坏情况下是k需要最后两个数据相加才使得条件成立,时间复杂度为:O(N^2)TIPS: 一定要注意细节特殊处理0, 面对0无法进行取余,只有0是0的倍数因此搜索连续两个及以上的0即为true(这里都是血和泪)cpp代码如下class Solution {p...原创 2020-04-13 20:24:35 · 310 阅读 · 0 评论 -
和为K的连续子数组
560 和为K的连续子数组LeetCode-560:和为K的连续子数组优雅的暴力(累加和) 分析题目可以知道所求是在给定数组范围内求解区间(i,j)的子数组之和sum使得sum = k - 通过两层循环依次求出所有累加和与K值比较C++代码实现如下class Solution {public: int subarraySum(vector<int>&...原创 2020-04-13 20:23:52 · 2273 阅读 · 0 评论 -
两数之和
1.两数之和LeetCode暴力搜索- 直观上可以直接采用暴力搜索的方法时间复杂度为O(N^2)- 比较每个元素相加的和是否等于target- 可以采用两种办法对暴力法优化 - 双指针 - hash查找Method 1:双指针- 题目确保输入只对应一个答案- 如果原数组有序,可以设置头尾指针向中间搜索 - 头尾指针相加得到和N - N < target:头指针指示...原创 2020-04-13 20:23:38 · 155 阅读 · 0 评论 -
三数之和
三数之和三数之和这道题和两数之和四数之和三道题思路一样,都可以用双指针的方式和hash表的方式进行优化。当数字个数越多hash的方式优势越明显,四数之和明显优于双指针点:如何去掉重复的数据即不包含重复的三元组双指针固定一个数据寻找另外两个数据就退化为了两数之和每次加入元素的时候比较其与相邻元素的关系如果相等就跳过这个元素(去重)class Solution {pu...原创 2020-04-13 20:21:54 · 93 阅读 · 0 评论