LeetCode Weekly Contest 30

原创 2017年05月16日 18:29:45

一直放在草稿箱里没发。。。

https://leetcode.com/contest/leetcode-weekly-contest-30/
这一场比赛难度不大,主要拼脑子和手的速度。感觉第二第三题是老题,做得快的人估计以前看到过,我刷题少就吃亏了。

Q1 Reshape the Matrix

要求实现MATLAB中的reshape函数,但是新矩阵的填充方式从column-traversing改成了row-traversing。签到题。

Q2 Subarray Sum Equals K

给定一个长度在20000以内的数组,所有元素和等于k的子数组有多少个?
数组元素大小范围:[-1000, 1000]
k:[-1e7, 1e7]

思路很有借鉴意义的一道题。穷举所有子数组显然不能满足时间复杂度的要求。对于子数组和或者连续元素和,通常的思路是维护一个前缀和数组presum,其中presum[i]表示前i个元素的和。对于本题,我们可以这样考虑:对于presum[i],满足j < i且presum[i]-presum[j]=k的j的presum[j]个数就是以i结尾的满足要求的子数组个数。如果我们能对每一个i都快速求出这样的presum[j]的个数,这个问题就解决了。

计数的方法有很多种,可以用关联数组,比如Java中的Map,HashMap。我用的是C++ STL中的multiset。

Q3 Permutation in String

也是思路很有借鉴意义的一道题。
给定两个字符串s1和s2,问s2中是否包含了s1的一个排列?

不妨先想想如何判断一个字符串是否为另一个字符串的排列,只需要记录一下两个字符串所有字母的出现次数,然后比对一下就可以了。

对于本题,首先排除s1比s2长的情况。然后,枚举s2所有长度等于s1的子串,与s1比较。为了加快速度,这里要用滑动窗口(sliding window)的技巧。

Q4 Maximum Vacation Days

有空填坑

LeetCode Weekly Contest 31解题思路

LeetCode Weekly Contest 31解题思路 详细代码可以fork下Github上[leetcode][1]项目,不定期更新。 赛题本次周赛主要分为以下4道题: 575 Distr...
  • u014688145
  • u014688145
  • 2017-05-07 15:26:37
  • 637

leetcode weekly contest 4,3

今天做了leetcode的weekly contest4。惨不忍睹啊!!! 2016/9/11 1,给一个数组A,计算 0*B[0] + 1*B[1] + ……+(n-1)*B[n-1]的最大值,其...
  • qq_31917799
  • qq_31917799
  • 2016-09-11 22:14:30
  • 396

Weekly Contest 63

Min Cost Climbing Stairs Shortest Completing Word Number Of Corner Rectangles Contain Virus746. Min ...
  • gcola007
  • gcola007
  • 2017-12-17 12:57:27
  • 105

LeetCode Weekly Contest 35解题思路

LeetCode Weekly Contest 35解题思路 详细代码可以fork下Github上leetcode项目,不定期更新。 赛题本次周赛主要分为以下4道题: Leetcode 605. ...
  • u014688145
  • u014688145
  • 2017-06-04 16:34:06
  • 978

LeetCode Weekly Contest 30解题思路

LeetCode Weekly Contest 30解题思路赛题本次周赛主要分为以下4道题: 566 Reshape the Matrix (3分) 560 Subarray Sum Equals K...
  • u014688145
  • u014688145
  • 2017-04-30 16:46:58
  • 1466

LeetCode Weekly Contest 28

LeetCode Weekly Contest 28 总结
  • u012961561
  • u012961561
  • 2017-04-17 01:50:54
  • 741

weekly contest 55 Best Time to Buy and Sell Stock with Transaction Fee

题目Your are given an array of integers prices, for which the i-th element is the price of a given sto...
  • weixin_38739799
  • weixin_38739799
  • 2017-10-23 14:21:20
  • 582

LeetCode Weekly Contest 45解题思路

LeetCode Weekly Contest 45解题思路 详细代码可以fork下Github上leetcode项目,不定期更新。 赛题本次周赛主要分为以下4道题: Leetcode 657. ...
  • u014688145
  • u014688145
  • 2017-08-13 17:59:51
  • 1976

LeetCode Weekly Contest 64 - 752. Open the Lock【BFS + string】

752. Open the LockYou have a lock in front of you with 4 circular wheels. Each wheel has 10 slots: ‘...
  • nobleman__
  • nobleman__
  • 2017-12-25 11:14:40
  • 111

leetcode785——Is Graph Bipartite?

题目大意:给出无向图的邻接表,判断它是不是二分图分析:二分图就是图中的每条边的两个端点分别在两个不同的点集中。我们使用染色法判断一个图是否是二分图。初始化每个点未染色时颜色为0,然后两个点集中的点颜色...
  • tzyshiwolaogongya
  • tzyshiwolaogongya
  • 2018-03-22 10:43:19
  • 8
收藏助手
不良信息举报
您举报文章:LeetCode Weekly Contest 30
举报原因:
原因补充:

(最多只允许输入30个字)