算法与刷题
水凝霜艾米
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
红黑树的插入过程(手动画图)
手动画的红黑树的插入过程原创 2020-04-29 15:53:12 · 407 阅读 · 0 评论 -
LeetCode 70. 爬楼梯 C++
class Solution { public: // 动态规划解法--递归 vector<int> dp;// 用来记录已经计算过的结果,避免重复计算 int climbStairs(int n) { // 当dp为空时,申请空间(仅需要做一次该操作) if (dp.empty()) dp.resize(n+1); ...原创 2020-04-19 15:29:38 · 198 阅读 · 0 评论 -
LeetCode 297. 二叉树的序列化与反序列化 C++
详细思路在注释里 1. 通过序列化,可以只使用先序遍历就可以唯一确定一颗二叉树。 2. 序列化时:空节点用"#,"表示,非空节点用其节点的val值加逗号表示。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *r...原创 2020-04-18 21:44:52 · 281 阅读 · 0 评论 -
LeetCode 98. 验证二叉搜索树 C++
LeetCode 98. 验证二叉搜索树 C++ 思路: 自顶向下遍历:每一个节点有一个对应的区间 class Solution { public: bool isValidBST(TreeNode* root) { return dfs(root, INT_MIN, INT_MAX); } bool dfs(TreeNode* root, long lo...原创 2020-04-17 22:23:49 · 262 阅读 · 0 评论 -
LeetCode 94. 二叉树的中序遍历 C++
LeetCode 94. 二叉树的中序遍历 C++ 方法: 1.迭代 2.递归 详细思路见注释 class Solution { public: // 思路: // 1. 将整棵树的最左边一条链压入栈中 // 2. 每次取出栈顶元素,如果它有右子树,则将右子树压入栈中 vector<int> inorderTraversal(TreeNode* root...原创 2020-04-17 22:20:49 · 211 阅读 · 0 评论 -
LeetCode101.对称二叉树 C++
LeetCode101.对称二叉树 C++ 实现方法: 1.递归 2.迭代 详细思路在代码注释中 class Solution { public: /* // 递归写法思路: // 1.两个根节点的值要相等 // 2.左边的左子树和右边的右子树对称 // 3.左边的右子树和右边的左子树对称 bool isSymmetric(TreeNode* roo...原创 2020-04-17 22:16:44 · 250 阅读 · 0 评论 -
LeetCode395. 至少有K个重复字符的最长子串 C++
/* * 分治递归 */ class Solution { public: // 1.统计每个字符出现的次数 // 2.找到第一个出现次数小于k的字符,下标为i // 3.处理该字符左边的字符串 // 4.在下标i后面找到第一个出现次数大于k的字符 //(思想:最长的子串一定不包含出现次数小于k的字符) int longestSubstring(...原创 2020-04-11 18:11:01 · 353 阅读 · 0 评论 -
LeetCode169题-多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 本题难度为中等。 要寻找一个数组中出现次数超过数组长度一半的元素,我首先想到的就是逐一遍历,计算每个数组中每个数字出现的次...原创 2020-02-17 22:21:19 · 557 阅读 · 0 评论 -
Leetcode79题:单词拆分(中等难度)
题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ [‘A’,‘B’,‘C’,‘E’], [‘S’,‘F’,‘C’,‘S’], [‘A’,‘D’,‘E’,‘E’] ] 给定 word = “ABCCED”, 返回...原创 2020-02-14 14:30:20 · 171 阅读 · 0 评论 -
Leetcode208题:实现一个前缀树(Trie)
题目描述 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。 示例: Trie trie = new Trie(); trie.insert(“apple”); trie.search(“apple”); // 返回 true trie.search(“app”); // 返回 false trie.startsWith(“ap...原创 2020-02-14 11:08:46 · 304 阅读 · 0 评论 -
Leetcode139题--单词拆分
Leetcode139题–单词拆分 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = “leetcode”, wordDict = [“leet”, “code”] 输出: true 解释: 返回 true 因为...原创 2020-02-13 13:48:49 · 161 阅读 · 0 评论 -
剑指offer 面试题9-用两个栈实现队列
用两个栈实现队列 数据结构特点 栈:先进后出 队列:先进先出 定义两个栈:stack1和stack2 stack1:用来在队列尾部添加节点。 stack2:用来在队列头部删除节点。 观察下图: 上图中最左边序号为1的两个栈: 在stack1中依次压入a,b,c三个节点,此时stack2为空。 上图中最左边序号为2的两个栈: 此时若需要在队列头部删除节点,需要将stack1中的节点依次弹出并按照弹...原创 2019-09-26 11:10:54 · 163 阅读 · 0 评论 -
LeetCode 198题 打家劫舍
c++代码 利用动态规划思想 先计算出dp[0] dp[1] 即偷或不偷前两个房子的最大偷窃金额 然后每次迭代选择: max(dp[i-1], dp[i-2] + nums[i]);//核心代码 class Solution { public: int max(int a, int b) { return a>b ? a : b; } int rob(vector<int&g...原创 2019-08-10 15:53:18 · 232 阅读 · 0 评论 -
leetcode26题
Leetcode第26题 虽然是一道简单的题,但自己还是没有想出来怎么做。 问题核心:原地删除数组中重复的元素(所给数组已排序) 解决方法:时间复杂度和空间复杂度都要求很低 在数组当中设置两个指针i和j,运行的时候,一个指针移动较快,一个移动较慢。 i初始只想nums的第一个元素,j初始指向nums的第二个元素,然后开始遍历。 当nums[j] != nums[i]的时候,将nums[j]复...原创 2019-03-29 08:01:19 · 453 阅读 · 0 评论 -
堆
数据结构之堆 不是完整的讲解堆,只是写一些自己在学习的过程中感觉需要注意的几个点 (参考书籍《啊哈算法》) 堆的概念 堆是一种特殊的完全二叉树 首先说下满二叉树和完全二叉树 满二叉树:每个内部节点都有两个儿子结点; 完全二叉树:除了最后一层,其余层的结点数都到达了最大值,最后一层从右向左连续缺若干结点;(也可以理解为:如果一个结点有右结点,那么一定也有左结点) 最大堆:父结点都比子结点大。 最小堆...原创 2019-03-10 19:59:18 · 215 阅读 · 0 评论 -
leetcode 189题旋转数组
我使用python语言写的,主要有两种方法。 1.先将整个数组反转,在分别反转前k个和后k个,思路很简单。 2.第2种方法是利用python中对list的一些操作,将list分片后再重新组合 两种方法的代码如下:注释中也谢了思路 class Solution(object): def rotate_1(self, nums, k): """ :type...原创 2019-04-07 09:25:54 · 223 阅读 · 0 评论 -
leetcode121题
121题和122题类似,但121题是只能买卖一次股票 代码如下: class Solution(object): def maxProfit(self, prices): “”" :type prices: List[int] :rtype: int “”" if (prices == None) or len(price...原创 2019-03-30 22:17:08 · 363 阅读 · 0 评论
分享