- 博客(17)
- 收藏
- 关注
原创 Leetcode动态规划
509. 斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。746. 使用最小花费爬楼梯
2021-07-07 16:03:20 54
原创 Leetcode回溯算法
回溯模板void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }}77. 组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。216. 组合总和
2021-07-05 15:50:04 62
原创 Leetcode二叉树
二叉树的递归遍历前序遍历class Solution {public: void traversal(TreeNode* cur, vector<int>& vec) { if (cur == NULL) return; vec.push_back(cur->val); // 中 traversal(cur->left, vec); // 左 traversal(cur->right,
2021-07-01 11:11:42 84
原创 Leetcode栈和队列
232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 push to top, peek/pop from t
2021-06-28 20:13:39 48
原创 Leetcode双指针算法
双指针法基本都是应用在数组,字符串与链表的题目上27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。解答class Solution {public: int removeElement(vector<int>& nums, int val) {
2021-06-25 10:49:55 44
原创 KMP算法
构造next数组(回退数组)我们定义一个函数getNext来构建next数组,函数参数为指向next数组的指针,和一个字符串。 代码如下:void getNext(int* next, const string& s)构造next数组其实就是计算模式串s,前缀表的过程。 主要有如下三步:初始化处理前后缀不相同的情况处理前后缀相同的情况详细步骤如下:1. 初始化:定义两个指针i和j,j指向前缀起始位置,i指向后缀起始位置。然后还要对next数组进行初始化赋值,如下:int
2021-06-24 17:06:52 46
原创 Leetcode字符串
344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。解答class Solution {public: void reverseString(vector<char>& s) { for (int i = 0, j = s.size(
2021-06-24 17:06:42 54
原创 Leetcode哈希表
判断是否重复出现时可以使用哈希表242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。解答class Solution {public: bool isAnagram(string s, string t) { if(s.length() != t.length()) return false; vector<int> record(26, 0); for(char c : s)
2021-06-22 15:39:44 44
原创 Leetcode链表
学会使用虚拟头节点203. 移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。解答/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNo
2021-06-21 17:24:21 49
原创 Leetcode数组
704. 二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。解答时间复杂度 O(log2n)class Solution {public: int search(vector<int>& nums, int target) { int n = nums.size(); int l = 0, r = n - 1;
2021-06-21 11:12:44 36
原创 01背包/完全背包问题
01背包/完全背包问题416. 分割等和子集给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。解答class Solution {public: bool canPartition
2021-06-18 14:40:41 84
原创 LeetCode热门100题21-25题(46\48\49\53\55)
46. 全排列题目给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]解答回溯法class Solution {public: vector<vector<int>> permute(vector<int>& nums) { ans.clear(); pat
2020-11-25 09:57:35 54
原创 LeetCode热门100题16-20题(32\33\34\39\42)
32. 最长有效括号题目给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”解答class Solution {public: int longestValidParentheses(string s) { int l = 0, r = 0; int max
2020-11-16 15:18:33 46
原创 LeetCode热门100题11-15题(20\21\22\23\31)
20. 有效的括号题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true解答注
2020-11-06 10:24:42 74
原创 LeetCode热门100题6-10题(10\11\15\17\19)
10. 正则表达式匹配题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = “aa” p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa” p = “a*”输出:true解释:因为 ‘*’ 代表可以匹配零个或多个前面的那一个元素, 在这里
2020-11-02 16:40:11 157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人