leetcode
11
王蒟蒻
蒟蒻
展开
-
leetcode 刷题心得--持续更新
11 盛水最多的容器//双指针法 class Solution { public: int maxArea(vector& height) { int max=0,p=0,q=height.size()-1,temp; while(p17 电话号码的字母组合class Solution { public: strin...原创 2020-03-26 11:43:04 · 1243 阅读 · 0 评论 -
23. 合并K个排序链表
有关于priority_queue的使用其实就是加入队列排个序输出struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: class pri { public: bool operator()(ListNode* a...原创 2019-03-04 16:31:21 · 200 阅读 · 0 评论 -
领扣——两数之和
1.题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]2.知识点哈希表(散列表)的应用C++中map的基本操作和用法c++中map与unor...原创 2019-02-20 11:15:30 · 370 阅读 · 0 评论 -
21. 合并两个有序链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* merge...原创 2019-03-01 11:23:01 · 194 阅读 · 0 评论 -
13. 罗马数字转整数
够简洁class Solution {public: int romanToInt(string s) { vector<int> backet(150); backet['I'] = 1; backet['V'] = 5; backet['X'] = 10; backet['L'] = 50;...原创 2019-02-22 14:57:50 · 216 阅读 · 0 评论 -
84.柱状图中最大的矩形
法一:每次遇到一个峰值往回进行处理class Solution {public: int largestRectangleArea(vector<int>& heights) { int res=0; for(int i=0;i<heights.size();i++) { if(i+1<h...原创 2019-03-20 10:15:41 · 265 阅读 · 0 评论 -
49. 字母异位词分组
class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { int cout=0; vector<vector<string>>re; unordered_map&...原创 2019-03-13 10:50:20 · 223 阅读 · 0 评论 -
76. 最小覆盖子串
class Solution {public: string minWindow(string s, string t) { if (s.size()<t.size()) return ""; int count=0,left=0,right=0,Left=0,min=INT_MAX; unordered_ma...原创 2019-03-16 20:43:53 · 273 阅读 · 0 评论 -
61. 旋转链表
链表常用方法之——快慢指针法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ...原创 2019-03-10 16:12:48 · 203 阅读 · 0 评论 -
92. 反转链表 II
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* fanzh...原创 2019-03-11 16:41:56 · 200 阅读 · 0 评论 -
37. 解数独
使用递归class Solution {public: bool check(vector<vector<char>>& board,int i,int j,char num)//检查Num 数字加入是否冲突 { for(int k=0;k<9;k++) { if (board[i][...原创 2019-03-12 23:05:22 · 236 阅读 · 0 评论 -
42. 接雨水
方法一:采用竖向累加得面积从两端往中间逼近,记录左右两端高度最高值,那么对于这两端最高值中间部分,如果高度低于两端最高值,能接的雨水取决于两端最高值中的最小值。class Solution {public: int trap(vector<int>& height) { int left=0,right=height.size()-1,Left=...原创 2019-03-17 12:32:59 · 330 阅读 · 0 评论 -
18. 四数之和
class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { sort(nums.begin(), nums.end()); vector<vector<int>>res;int c = nums.size();...原创 2019-02-27 11:26:04 · 193 阅读 · 0 评论 -
25. k个一组翻转链表
https://www.cnblogs.com/byrhuangqiang/p/4311336.html原创 2019-03-10 10:50:35 · 195 阅读 · 0 评论 -
2. 两数相加
哑结点即头结点之前的结点主要是实战一下链表的使用链表相关知识反转链表方法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */c...原创 2019-02-28 10:50:42 · 222 阅读 · 0 评论 -
5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”...原创 2019-02-20 17:16:28 · 265 阅读 · 0 评论 -
30. 串联所有单词的子串
一开始的思路是使用递归做出words所有结合情况的字典然后在s中截取words长度去查字典结果超时了……超时代码class Solution {public: void dfs(vector&lt;string&gt;words, int chang, int step, vector&lt;int&gt;book, string dd, unordered_map&lt;str...原创 2019-03-13 16:58:13 · 356 阅读 · 0 评论 -
17. 电话号码的字母组合
class Solution {public: string s = ""; vector<string>aa; vector<string>ying{ "===", "---", "abc", "def", "ghi", "jkl", "mno", "pqrs"原创 2019-02-24 16:47:53 · 234 阅读 · 0 评论 -
19. 删除链表的倒数第N个节点
一次遍历class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode *dummy = new ListNode(0); dummy->next = head; ListNode *first = dummy; ListNode *second = d...原创 2019-02-28 11:50:29 · 199 阅读 · 0 评论 -
12. 整数转罗马数字
记录几个比较简洁的写法class Solution {public: string intToRoman(int num) { const std::string m[4][10] = {{"", "M", "MM", "MMM"}, {"", "C", "CC", "CCC&quo原创 2019-02-22 10:48:21 · 197 阅读 · 0 评论 -
20. 有效的括号
主要是熟悉一下栈的用法参考头文件#include &lt;stack&gt;定义 stack &lt;int&gt;stk;基本用法push(): 向栈内压入一个成员;pop(): 从栈顶弹出一个成员;empty(): 如果栈为空返回true,否则返回false;top(): 返回栈顶,但不删除成员;size(): 返回栈内元素的大小;用法示例#include&lt;...原创 2019-02-27 14:58:41 · 214 阅读 · 0 评论 -
3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。滑动窗口法class Solution {public: int lengthOfLonges...原创 2019-02-20 11:32:01 · 229 阅读 · 0 评论 -
溢出判断两种方法
法1:num = num * 10 + *c - ‘0’;if (num != sta * 10 + *c - ‘0’)if (flag == 1)return (2e31) - 1;elsereturn -2e31;法2:if (rev > INT_MAX / 10 || (rev == INT_MAX / 10 && pop > 7)) return...原创 2019-09-02 17:33:46 · 727 阅读 · 0 评论 -
67.二进制求和
class Solution {public: string addBinary(string a, string b) { int i=a.size()-1,j=b.size()-1,array=0; string s="",ss="0101"; while(i>=0||j>=0||array==1) { ...原创 2019-03-20 11:55:28 · 307 阅读 · 0 评论 -
34.在排序数组中查找元素的第一个和最后一个位置
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int begin=0,end=nums.size()-1; vector<int>a2{0,0}; if(nums.empty()||...原创 2019-03-21 10:31:00 · 269 阅读 · 0 评论 -
36. 有效的数独
一次遍历法使用哈希表进行查重class Solution {public: bool isValidSudoku(vector<vector<char>>& board) { vector<unordered_map<int,bool>>row(9); vector<unordered_ma...原创 2019-03-12 16:29:44 · 284 阅读 · 0 评论