![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
kicksilver7
人丑多读书!!!
展开
-
LeetCode 318. Maximum Product of Word Lengths
题目链接:https://leetcode.com/problems/maximum-product-of-word-lengths/description/题解:一道很有趣的题目,用常规的思路,时间应该是O(n^3),应该是会超时的(虽然自己没有试过。。。。。。),因此,我们就需要优化自己的算法, 我们可以对字符先进行预处理,这里我们可以对于每一个字符串进行状态的压缩,这样的话,我们在对其求长度原创 2017-08-16 10:46:13 · 182 阅读 · 0 评论 -
LeetCode 396. Rotate Function
题目链接:https://leetcode.com/problems/rotate-function/description/题解:一道很好的思维题,我们可以这么去进行思考,将一个状态变成下一个需要的状态,就是将上一个状态的最后的一个数移动到前面,在对其进行求和,其实相当于当前的最后一个数为0,其他的数全部加一。推一下很容易就能推出来。代码:class Solution {public:原创 2017-08-21 14:03:43 · 189 阅读 · 0 评论 -
LeetCode 18. 4Sum
题目链接:https://leetcode.com/problems/4sum/description/题解:在这之前,我们已经解决过了3Sum这个问题,那么,4Sum其实就是在3Sum的基础上,多加了一个。因此,我们可以这么去做,原本对于3Sum,我们只是先确定了一个,那么,我们可以先确定两个。其他地方的处理方法跟3Sum没什么区别。代码:class Solution {public:原创 2017-08-06 09:59:59 · 194 阅读 · 0 评论 -
LeetCode 16. 3Sum Closest
题目链接:https://leetcode.com/problems/3sum-closest/description/题解:跟上一道的3Sum的思路一样,只要稍微改下就行了,这里就不细说,不懂的直接看代码。代码:class Solution {public: int threeSumClosest(vector<int>& nums, int target) { sort原创 2017-08-06 09:30:57 · 191 阅读 · 0 评论 -
LeetCode 3Sum
题目链接:https://leetcode.com/problems/3sum/description/题解:用二分的思想去做,先对所有的数字进行排序。然后优先确定一个数字,在对其他的两个数字直接二分就行了。这里对于重复的情况,我们可以使用set直接避免。代码:class Solution {public: vector<vector<int>> threeSum(vector<int>&原创 2017-08-05 21:16:35 · 135 阅读 · 0 评论 -
LeetCode 14. Longest Common Prefix
题目链接:https://leetcode.com/problems/longest-common-prefix/description/题意:找公共最长的前缀字符串。题解:N^2 暴力过的,水题。代码:class Solution {public: string longestCommonPrefix(vector<string>& strs) { string s=""原创 2017-08-03 10:40:35 · 164 阅读 · 0 评论 -
LeetCode 518. Coin Change 2
题目链接:https://leetcode.com/problems/coin-change-2/description/题解:完全背包代码:class Solution {public: int change(int amount, vector<int>& coins) { int dp[5010]; memset(dp,0,sizeof(dp));原创 2017-08-10 09:21:10 · 313 阅读 · 0 评论 -
LeetCode 43. Multiply Strings
题目链接:https://leetcode.com/problems/multiply-strings/description/题解:直接模拟乘法的运算即可。代码:class Solution {public:string multiply(string num1, string num2) {// vector<int>p; int p[1000]; memset(p,原创 2017-08-09 21:33:21 · 173 阅读 · 0 评论 -
LeetCode 11. Container With Most Water
题目链接:https://leetcode.com/problems/container-with-most-water/description/题意:给你一系列的的数字,表示一个水池的两边的高度,他们之间的下标差就是水池的底,找到两条边,使得这个水池能够放的水尽量的多。题解:直接暴力两个FOR(n^2)的方法肯定是不行的(时间会直接超时),因此,我们只能选择O(N)或O(N*logN)的方法,我们原创 2017-08-02 14:26:28 · 178 阅读 · 0 评论 -
LeetCode 5. Longest Palindromic Substring
题目链接:https://leetcode.com/problems/longest-palindromic-substring/description/题解:Manacher算法的简单变形代码:class Solution {public: string longestPalindrome(string s) { string ss="&#"; for(i原创 2017-07-31 19:44:15 · 130 阅读 · 0 评论 -
LeetCode 26. Remove Duplicates from Sorted Array
题目链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/题解:虽然是一个很简单的题目,但是这种想法感觉很奇妙。代码:class Solution {public: int removeDuplicates(vector<int>& nums) { int i=0;原创 2017-08-09 14:49:52 · 139 阅读 · 0 评论 -
LeetCode 560. Subarray Sum Equals K
题目链接: https://leetcode.com/problems/subarray-sum-equals-k/description/ 题解: 先一个For过去,记录下每次前缀和的出现的次数。对于查找第K大的,那么只要对于当前的前缀和,找到其减去K之后数字,它出现的次数,加一下就行了。因为对于当前数列的前缀和,他一定是从1到N,所以减掉K之后,一定是满足连续的这个条件的。 代码:cla原创 2017-08-15 12:45:09 · 235 阅读 · 0 评论