leetcode
cccler
把自己看的东西,学的东西,做的东西整齐起来。
展开
-
leetcode 42 接雨水 c++
42接雨水我的做法:我是这样想的,水肯定是放在两个峰中间的,所以目标是找到邻近的峰k,然后在中间填水,填多高依矮一点的峰来决定(木桶效应嘛)。所以先找到最高的峰,然后依次向左右找到次高的,把中间填满水,再继续向左右找,找到没有峰了为止。给出代码:class Solution {public: int add_all(vector<int>& height){ ...原创 2019-09-25 19:31:07 · 136 阅读 · 0 评论 -
leetcode 26删除排序数组中的重复项 c++
26删除排序数组中的重复项题目链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/这个题目给我上了一课,不要盲目用STL中的方法,有些时候这样做是很慢的(比如这个题目,居然要我别管内存泄漏的问题,emmm)。这个题目第一眼看过去,把所有重复的数erase掉就可以了(因为是排好序的,所以重复的值一定连在一...原创 2019-09-30 16:29:04 · 134 阅读 · 0 评论 -
leetcode 24 两两交换链表中的节点 c++
24两两交换链表中的节点题目链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/本身只是实现并不难,直接换一下val就行了。但这道题不准偷懒,必须交换节点,所以是一道重视基本功的题目,理不清了就画个图好了。需要注意一下原链表只有0个或1个节点的情况。/** * Definition for singly-linked list....原创 2019-09-30 15:35:32 · 133 阅读 · 0 评论 -
leetcode 22括号生成 c++ 补17
22括号生成 17题目链接:https://leetcode-cn.com/problems/generate-parentheses/这道题目的思路是回溯,有没有不用迭代的方法写出的回溯呢…class Solution {public: void put(vector<string>& result,string tem,int left,int right,...原创 2019-09-30 15:01:24 · 299 阅读 · 0 评论 -
leetcode 20 有效的括号 c++
20有效的括号题目链接:https://leetcode-cn.com/problems/valid-parentheses/这题没啥难的,用栈一下子就完事了,不过第一次写出测试时间为0ms的代码,还是挺有趣的。class Solution {public: bool isValid(string s) { bool result=true; sta...原创 2019-09-29 17:17:18 · 172 阅读 · 0 评论 -
leetcode 15 三数之和 c++ 补16题
15三数之和题目链接:https://leetcode-cn.com/problems/3sum/这个题目也是双指针,两数之和的加强版。虽然很明显最优解是O(n2)O(n^{2})O(n2)的,但是关键在于怎样能够在其他地方节省时间。比如这一题中不需要重复的解(也就是一模一样的三数组合),如果采用和现有解空间对比的法子就太慢了,如果可以找到方法跳过重复的数,就会好很多。class Solut...原创 2019-09-29 13:16:35 · 102 阅读 · 0 评论 -
leetcode 11 盛最多水的容器 c++
11盛最多水的容器题目链接:https://leetcode-cn.com/problems/container-with-most-water/这道题目展示了双指针的强大,我觉得涉及到一维的问题时,就可以考虑双指针,不只是数字问题,字符串类问题也有可能有效。class Solution {public: int maxArea(vector<int>& hei...原创 2019-09-27 16:18:46 · 362 阅读 · 0 评论 -
leetcode 1 两数之和 c++
1两数之和题目链接:https://leetcode-cn.com/problems/two-sum/这道题目主要是练习了一下哈希表,原来叫hash_map,现在进了STL,改叫unordered_map了。class Solution {public: vector<int> twoSum(vector<int>& nums, int ta...原创 2019-09-27 15:51:31 · 99 阅读 · 0 评论 -
leetcode 8 字符串转换整数 (atoi) c++
8字符串转换整数 (atoi)题目链接:https://leetcode-cn.com/problems/string-to-integer-atoi/)class这题目我拿哈希表做的,其实也就是起个字典的效果,维护起来比较容易,但是速度真的慢…另外发现了,string中的单个元素是可以直接拿来和char型做比较的,用typeid().name()一看,结果发现单个元素的类型就是char…c...原创 2019-09-26 12:22:07 · 84 阅读 · 0 评论 -
leetcode 7 整数反转 c++
7整数反转题目链接:https://leetcode-cn.com/problems/reverse-integer/submissions/这个题也是一个输出控制,本身不难,难在对特殊测试样例的处理。题目要求反转后溢出的数(在$ [−2^{31}, 2^{31} − 1]范围以外),输出结果要是0,这就挺烦的了。我是先把负数输入变成正的,再取余移位,但这里就有个问题,负数是可以输入范围以外...原创 2019-09-26 11:19:49 · 152 阅读 · 0 评论 -
leetcode 6 Z 字形变换 c++
6最长回文子串补一个题目位置。https://leetcode-cn.com/problems/zigzag-conversion/这题是输出控制,实现了就行。我的想法:这些字母的排列是按2∗(numRows−1)2*(numRows-1)2∗(numRows−1)的方式呈周期性的,所以对2∗(numRows−1)2*(numRows-1)2∗(numRows−1)取余就可以了。要注意num...原创 2019-09-26 09:50:51 · 186 阅读 · 0 评论 -
leetcode 5 最长回文子串 c++
5最长回文子串我的想法:回文子串一定得有一个点做中心(或者两个点),遍历着去试,看看哪个点(或者和它临近的点一起)做中心形成的回文串最长。class Solution {public: string longestPalindrome(string s) { int i=0; int j=0; int k=0; int ...原创 2019-09-25 21:12:15 · 94 阅读 · 0 评论 -
leetcode 29 两数相除 c++
29两数相除题目链接:https://leetcode-cn.com/problems/divide-two-integers/这题目真的很恶心…让我感觉溢出是c++的核心问题了。这题目标签上给的二分法,就是把商从0到231−12^{31}-1231−1用二分法不停的试(先把除数和被除数变成正的,当然这又涉及到溢出了),不过我没这么做。我是用的移位比较,其实就是竖式除法,这溢出处理真的把我恶心...原创 2019-09-30 18:14:40 · 293 阅读 · 0 评论