随笔分类 -  数据结构

摘要:labuladong 题解 难度中等1194 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(St 阅读全文
posted @ 2022-05-31 22:27 乐乐章 阅读(42) 评论(0) 推荐(0)
摘要:20. Valid Parentheses(括号匹配,用桟) class Solution { public: bool isValid(string s) { stack<char> stk; for (char c : s) { if (c == '(' || c == '[' || c=='{ 阅读全文
posted @ 2022-03-06 13:37 乐乐章 阅读(32) 评论(0) 推荐(0)
摘要:BFS : BFS 的核心思想应该不难理解的,就是把一些问题抽象成图,从一个点开始,向四周开始扩散。一般来说,我们写 BFS 算法都是用「队列」这种数据结构,每次将一个节点周围的所有节点加入队列。 BFS 相对 DFS 的最主要的区别是:BFS 找到的路径一定是最短的,但代价就是空间复杂度可能比 D 阅读全文
posted @ 2022-02-19 13:03 乐乐章 阅读(212) 评论(0) 推荐(0)
摘要:55. Jump Game(贪心) 1 class Solution { 2 public: 3 bool canJump(vector<int>& nums) { 4 int max_len = 0; 5 for(int i = 0; i < nums.size()-1;i++) { 6 max_ 阅读全文
posted @ 2021-11-20 19:44 乐乐章 阅读(36) 评论(0) 推荐(0)
摘要:https://labuladong.gitbook.io/algo/mu-lu-ye/hua-dong-chuang-kou-ji-qiao-jin-jie 滑动窗口题目: 3. 无重复字符的最长子串 class Solution { public: int lengthOfLongestSubs 阅读全文
posted @ 2020-03-30 23:58 乐乐章 阅读(176) 评论(0) 推荐(0)
摘要:反转链表: [LeetCode]206. Reverse Linked List(链表反转) 25. Reverse Nodes in k-Group(K 个一组,反转链表) 92. Reverse Linked List II(链表部分反转) 链表求和: 2. Add Two Numbers(2个 阅读全文
posted @ 2018-05-09 17:53 乐乐章 阅读(145) 评论(0) 推荐(0)
摘要:合并区间 : 56. Merge Intervals(56. 合并区间 排序+双指针) 快慢指针: 141. Linked List Cycle(快慢指针 判断链表是否有环) 142. Linked List Cycle II(快慢指针--找出链表相交的节点) 876. 链表的中间结点 19. Re 阅读全文
posted @ 2018-05-07 17:29 乐乐章 阅读(126) 评论(0) 推荐(0)
摘要:https://labuladong.gitbook.io/algo/mu-lu-ye/er-fen-cha-zhao-xiang-jie 1 int binary_search(int[] nums, int target) { 2 int left = 0, right = nums.lengt 阅读全文
posted @ 2018-05-05 22:30 乐乐章 阅读(120) 评论(0) 推荐(0)
摘要:解题思路:1.DFS 和回溯算法区别DFS 是一个劲的往某一个方向搜索,而回溯算法建立在 DFS 基础之上的,但不同的是在搜索过程中,达到结束条件后,恢复状态,回溯上一层,再次搜索。因此回溯算法与 DFS 的区别就是有无状态重置 2.何时使用回溯算法当问题需要 "回头",以此来查找出所有的解的时候, 阅读全文
posted @ 2018-04-21 20:15 乐乐章 阅读(161) 评论(0) 推荐(0)
摘要:84. Largest Rectangle in Histogram(直方图最大面积 hard) 42. Trapping Rain Water(直方图 存水量 hard) 11. Container With Most Water(装最多的水 双指针) 阅读全文
posted @ 2018-04-02 11:20 乐乐章 阅读(193) 评论(0) 推荐(0)
摘要:和为定值的m个数 1. Two Sum 75. Sort Colors(荷兰国旗问题 三指针) 阅读全文
posted @ 2018-03-29 09:48 乐乐章 阅读(108) 评论(0) 推荐(0)
摘要:46. Permutations (全排列) 47. Permutations II (全排列有重复的元素) 27字符串的排列 60. Permutation Sequence(求全排列的第k个排列) 31. Next Permutation (下一个全排列) 28. Implement strSt 阅读全文
posted @ 2018-03-10 11:50 乐乐章 阅读(112) 评论(0) 推荐(0)
摘要:字符串子序列 300. Longest Increasing Subsequence(LIS最长递增子序列 动态规划) 输入:nums = [10,9,2,5,3,7,101,18] 输出:4 解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。 dp[i] 表示以 nums[i] 这 阅读全文
posted @ 2018-03-08 22:30 乐乐章 阅读(133) 评论(0) 推荐(0)
摘要:广度优先: 周围面积:http://www.cnblogs.com/zle1992/p/8476221.html 单词变换:http://www.cnblogs.com/zle1992/p/8476064.html 深度优先: 回文划分:http://www.cnblogs.com/zle1992/ 阅读全文
posted @ 2018-02-28 10:02 乐乐章 阅读(104) 评论(0) 推荐(0)
摘要:stack: 括号匹配 20 :http://www.cnblogs.com/zle1992/p/8469603.html 最长括号匹配32 :http://www.cnblogs.com/zle1992/p/8469694.html RPN逆波兰表达式 150 :http://www.cnblog 阅读全文
posted @ 2018-02-24 15:00 乐乐章 阅读(138) 评论(0) 推荐(0)
摘要:反转链表: 206. 反转链表 1 class Solution { 2 public: 3 ListNode* reverseList(ListNode* head) { 4 if(head == nullptr || head->next == nullptr) return head; 5 L 阅读全文
posted @ 2018-02-23 21:43 乐乐章 阅读(127) 评论(0) 推荐(0)
摘要:BST: 增:(插入)  若当前的二叉查找树为空,则插入的元素为根节点,  若插入的元素值小于根节点值,则将元素插入到左子树中,  若插入的元素值不小于根节点值,则将元素插入到右子树中,  递归上述过程,直到找到插入点为叶子节点 查: 给定一颗二叉查找树,查找某节点p的过程如下:  将当前 阅读全文
posted @ 2018-02-22 11:35 乐乐章 阅读(189) 评论(0) 推荐(0)
摘要:和为定值的m个数 np 问题(时间复杂度o(2**n)) code1: 暴力递归 解决 只有正数的情况 阅读全文
posted @ 2018-02-20 23:43 乐乐章 阅读(278) 评论(0) 推荐(0)
摘要:归并排序; 剑指Offer--35数组中的逆序对 148. Sort List(归并排序) 如下图所示,为数组 [7, 3, 2, 6, 0, 1, 5, 4][7,3,2,6,0,1,5,4] 的归并排序过程。 1 //merge sort 2 public static void merge(i 阅读全文
posted @ 2017-12-08 21:07 乐乐章 阅读(288) 评论(0) 推荐(0)
摘要:堆排序、快速排序、希尔排序、直接选择排序是不稳定的排序算法,而冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, 阅读全文
posted @ 2017-12-08 21:06 乐乐章 阅读(234) 评论(0) 推荐(0)