任我行
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 壁纸

LCR079-LCR084集合的组合、排列

剑指offer(专项突破版)13.2 集合的组合、排列LCR079.子集分析如果集合中共有 n 个元素,那么确定集合的子集共需要 n 步。每一步都需要从集合中取出一个元素,这时候存在两个选择,添加当前数字或者不添加。生成一个子集需要若干步,并且每一步都有若干种选择,这是应用回溯法的典型问题。 递归函数helper一共有4个参数。第1个参数是数组nums,它包含输入集合的所有数字。可以逐一从集合中取
2024-06-06
算法笔记 > 回溯法
#剑指Offer

LCR074-LCR078排序

剑指offer(专项突破版)12 排序LCR074.合并区间分析如果先将所有区间按照起始位置排序,那么只需要比较相邻两个区间的结束位置就能知道它们是否重叠。如果区间1的结束位置大于区间2的起始位置,说明存在重叠,取较大的结束位置。如果它们重叠就将它们合并,然后判断合并的区间是否和下一个区间重叠。重复这个过程,直到所有重叠的区间都合并为止。 12345678910111213141516171819
2024-06-01
算法笔记 > 排序
#剑指Offer

LCR068-LCR073二分查找

剑指offer(专项突破版)11 二分查找LCR068.搜索插入位置分析若找到,返回位置,若没找到,返回left。 1234567891011121314151617181920class Solution {public: int searchInsert(vector<int>& nums, int target) { int lef
2024-05-27
算法笔记 > 二分查找
#剑指Offer

LCR062-LCR067前缀树

剑指offer(专项突破版)10 前缀树LCR062.实现前缀树分析1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556class Trie {private: vector<Trie*> children; b
2024-05-22
算法笔记 > 前缀树
#剑指Offer

LCR059-LCR061堆的应用

剑指offer(专项突破版)9.2 堆的应用LCR059.数据流中的第K大元素分析如果能够找出k个最大的数字,那么第k大的数字就是这k个最大数字中最小的一个。由于每次都需要找出k个数字中的最小值,因此可以把这k个数字保存到最小堆中。每当从数据流中读出一个数字,就先判断这个新的数字是不是有必要添加到最小堆中。如果最小堆中元素的数目还小于k,那么直接将它添加到最小堆中。如果最小堆中已经有k个元素,那么
2024-05-19
算法笔记 > 堆
#剑指Offer

LCR057-LCR058TreeSet和TreeMap的应用

剑指offer(专项突破版)8.4 TreeSet和TreeMap的应用LCR057.存在重复元素暴力解法可以逐一扫描数组中的每个数字。对于每个数字nums[i],需要逐一检查在它前面的k个数字是否存在从nums[i]-t到nums[i]+t的范围内的数字。如果存在,则返回true。这种思路很容易用两个嵌套的循环实现。 12345678910111213141516class Solution &
2024-05-17
算法笔记 > 树
#剑指Offer

LCR052-LCR056二叉搜索树

剑指offer(专项突破版)8.3 二叉搜索树LCR052.展平二叉搜索树分析可以通过中序遍历,把一个一个的结点链接到上一个结点的右子树上。 123456789101112131415161718192021222324252627282930313233343536/** * Definition for a binary tree node. * struct TreeNode {
2024-05-14
算法笔记 > 树
#剑指Offer

LCR047-LCR051二叉树的深度优先搜索

剑指offer(专项突破版)8.2 二叉树的深度优先搜索三种遍历方式前序遍历递归123456789101112131415161718192021222324252627/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNo
2024-05-09
算法笔记 > 树
#剑指Offer

LCR043-LCR046二叉树的广度优先搜索

剑指offer(专项突破版)7.3 二叉树的广度优先搜索LCR043.完全二叉树插入器分析 初始化:一个treenode指向根节点,一个队列,保存当前广度优先搜索到的位置。 插入:取出队列头结点,插入它的左边或右边,如果插的是右边,还需要将队头(也就是现在的父节点)弹出,将左右子结点放到队列中,因为此时队头结点需要更新。 1234567891011121314151617181920212223
2024-05-05
算法笔记 > 队列
#剑指Offer

LCR041-LCR042队列的应用

剑指offer(专项突破版)7.2 队列的应用LCR041.滑动窗口的平均值分析题目给出的例子中的删除规则是把最早添加进来的数字删除,因此这是一种“先入先出”的顺序,由此想到应该采用队列这种数据结构来表示滑动窗口。 123456789101112131415161718192021222324252627class MovingAverage {public: /** Initia
2024-05-04
算法笔记 > 队列
#剑指Offer
1…678910

搜索

Hexo Fluid
总访问量 次 总访客数 人