自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 leetcode32. 最长有效括号

1、题目https://leetcode-cn.com/problems/longest-valid-parentheses/2、题意题解1:栈 将每次左括号的位置推进栈当一段中右括号数量大于左括号数量时 记录这个右括号的位置 下一次合法括号一定是从这个位置往后的;class Solution {public: int longestValidParentheses(string s) { stack<int> stk; int res =

2020-06-30 20:39:13 47

原创 leetcode30. 串联所有单词的子串

1、题目https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/2、题意题解1:滑动窗口用hash表存words,i从0 - n-1开始,j从i开始 每次读入j后面的n个 j+=n 每次记录当前字符串s.substr(j,n)是否在words中存在,存在则cnt++; 若j大于words的总长度 说明起始位置需要更新 第一个读入j的若存在于words中则cnt–,class Solution {

2020-06-29 16:02:40 82

原创 leetcode29. 两数相除

1、题目https://leetcode-cn.com/problems/divide-two-integers/2、题意题解1:二进制例如 100 3;3看做二进制第一位 从低到高就为 3 6 12 24 48 96可得100=3+96;总个数为1(2^0)+(2^5) = 33;记录除数可以被除的最大值(100可以被除的最大值为96)然后更新resres+=1<<i位可能为1<<31超出int范围要转换为ll;class Solution {public:

2020-06-28 18:04:49 99

原创 leetcode25. K 个一组翻转链表

1、题目https://leetcode-cn.com/problems/reverse-nodes-in-k-group/2、题意题解1:给你这个链表:1->2->3->4->5当 k = 3 时,应当返回: 3->2->1->4->5先判断每一轮是否够k个 不够则break 当k = 3 将1->2->3进行k-1次循环翻转成1<-2<-3 最后将头节点指向的下一个改为3 1指向的下一个改为4 最后将头节点更新为1/*

2020-06-24 16:38:56 49

原创 leetcode24. 两两交换链表中的节点

1、题目https://leetcode-cn.com/problems/swap-nodes-in-pairs/submissions/2、题意题解1:迭代1->2->3->4;这样的链表增加虚拟头节点后为0->1->2->3->4要变成0->2->1->4->3;0的下一个节点为2 1的下一个节点为3 2的下一个节点为1 下一次循环从1开始class Solution{ public: ListNode* swap

2020-06-23 19:29:17 59

原创 leetcode23. 合并K个排序链表

1、题目https://leetcode-cn.com/problems/merge-k-sorted-lists/submissions/2、题意题解1:分治class Solution {public: ListNode* m(ListNode* list1,ListNode* list2) { auto dummy = new ListNode(-1),tail = dummy; while(list1&&list2)

2020-06-18 22:24:17 61

原创 leetcode21. 合并两个有序链表

1、题目https://leetcode-cn.com/problems/merge-two-sorted-lists/2、题意题解1:递归做法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x),

2020-06-15 15:47:07 182

原创 leetcode20. 有效的括号

1、题目https://leetcode-cn.com/problems/valid-parentheses/2、题意题解1:单调栈class Solution {public: bool isValid(string s) { stack<char> stk; if(s.size()%2) return false; for(int i=0;i<s.size();i++) { if(

2020-06-15 15:22:06 64

原创 leetcode19. 删除链表的倒数第N个节点

1、题目https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/2、题意题解1:计算总长度 然后将指针放到倒数第n个的前一个 p->next = p->next->next即可/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode

2020-06-15 15:02:13 54

原创 leetcode18. 四数之和

1、题目https://leetcode-cn.com/problems/4sum/submissions/2、题意题解1:和三数之和类似 两层循环变成三层循环class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>> res; i

2020-06-15 14:42:19 50

原创 leetcode17. 电话号码的字母组合

1、题目https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/submissions/2、题意题解1:dfsclass Solution {public: vector<string> res; string b[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; vector<string&

2020-06-14 16:24:34 47

原创 leetcode16. 最接近的三数之和

1、题目https://leetcode-cn.com/problems/3sum-closest/2、题意题解1:和上一题leetcode15类似 先排序 i不变 枚举每次j j每次变大k只可能变小或者不变;i+j+k>=0 i+j+k的最小值为离target最近的正数值,当j<k-1时 i+j+k-1为离target最近的负数值;用pair存他们的绝对值最小值和他们的值即可 记录最小值最后输出即可class Solution {public: int threeSumCl

2020-06-14 15:49:06 56

原创 leetcode15. 三数之和

1、题目https://leetcode-cn.com/problems/3sum/2、题意题解1:双指针 先排序 枚举第一个数和第二个数 枚举的每个数有重复的就跳过 第三个数k为数组最大的数 随着第二个数变大 i+j+k = 0 i不变 j变大 则k只能变小 i,j,k不能重叠所以要特盘一下j<k-1 当i+j+k-1>=0时则k每次就要-1(说明i+j+k不合法) 当i+j+k>=0且i+j+k==0就加到res里;class Solution {public:is

2020-06-14 15:02:55 63

原创 leetcode13. 罗马数字转整数

1、题目https://leetcode-cn.com/problems/roman-to-integer/2、题意题解1:哈希表 可以看出 除了900 400 90,40,9,4表示为反向的 其余直接res相加可得结果比如900表示为 1000-100;直接哈希表映射即可 ps:当为900 400…时 i要+2,因为当前计算了两个字符class Solution {public: int romanToInt(string s) { int res = 0, n =

2020-06-13 15:27:33 50

原创 leetcode12. 整数转罗马数字

1、题目https://leetcode-cn.com/problems/integer-to-roman/2、题意I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。题解1:所以 情况可为题中的单个数字和4 和 9 40 和 90 4

2020-06-13 15:06:53 55

原创 leetcode11. 盛最多水的容器

1、题目https://leetcode-cn.com/problems/container-with-most-water/2、题意题解1:双指针 记录height[l]和height[r]的最小值乘以r-l差即可class Solution {public: int maxArea(vector<int>& height) { int n = height.size(); int l = 0,r = n-1,res=0;

2020-06-13 14:39:17 56

原创 10. 正则表达式匹配

1、题目https://leetcode-cn.com/problems/regular-expression-matching/2、题意题解1:dp首先将s 和 p 多加一个空格方便遍历,f[0][0]初始化为trues串从0开始 因为当s串为空p串不为空也可能匹配(p串可能为*);j串从1开始遍历;①:当p[j]!="*“并且i!=0时 0到(i-1)和0到(j-1)能够匹配 并且当前字符相同则能够匹配f[i][j] = f[i-1][j-1]&&(s[i]

2020-06-12 21:06:47 73

原创 leetcode9. 回文数

1、题目https://leetcode-cn.com/problems/string-to-integer-atoi/2、题意题解1:直接转字符串 判断是否回文即可class Solution {public: bool isPalindrome(int x) { string t = to_string(x); int i=0,j=t.size()-1; while(i<j) { if(t[i

2020-06-09 23:48:14 61

原创 leetcode8. 字符串转换整数 (atoi)

1、题目https://leetcode-cn.com/problems/string-to-integer-atoi/2、题意题解1:先跳过前面为空的字符 记录是否有负号 ps:有可能有+号 然后记录其数字用longlong存 当res>INT_MAX时表明已经超过最大值 则直接跳出 最后再判断一下正负即可。class Solution {public: int myAtoi(string str) { int i = 0; while(i<s

2020-06-09 23:46:42 68

原创 leetcode7. 整数反转

1、题目https://leetcode-cn.com/problems/reverse-integer/2、题意题解1:https://leetcode-cn.com/problems/reverse-integer/class Solution {public: int reverse(int x) { long long res = 0; while(x) { res = x%10+res*10;

2020-06-09 16:53:17 61

原创 leetcode6. Z 字形变换

1、题目https://leetcode-cn.com/problems/zigzag-conversion/2、题意题解1:找规律输入: s = “LEETCODEISHIRING”, numRows = 4输出: “LDREOEIIECIHNTSG”解释:L      D         RE   O E      I  IE C    I   H    NT      S        G第一行和最后一行为

2020-06-09 16:44:29 80

原创 leetcode3. 无重复字符的最长子串

1、题目https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/2、题意题解1:哈希表 双指针/* j表示从j开始到i有多少个不同字符*/class Solution {public: int lengthOfLongestSubstring(string s) { unordered_map<char,int> m; int res = 0

2020-06-08 16:16:48 66

原创 leetcode2. 两数相加

1、题目https://leetcode-cn.com/problems/add-two-numbers/2、题意题解1:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: Lis

2020-06-08 15:58:28 59

原创 leetcode1两数之和

1、题目https://leetcode-cn.com/problems/two-sum/submissions/2、题意题解1:哈希表 O(n)class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int,int> m; for(int i=0;i<nums.size();i++)

2020-06-08 15:46:24 41

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除