代码随想录笔记

数组

key:数组在内存中的存储方式

二维数组


链表

在内存中可不是连续分布-散乱分布在内存中的某地址上,通过指针域的指针链接在内存中各个节点。

哈希表

哈希表是:根据关键码的值/数组索引而直接进行访问的数据结构。
哈希表常用于:快速判断一个元素是否出现集合里
可选数据结构:

  • 数组易判断相等--限制数值大小(不至于过分浪费空间)、
  • set (集合)---把数值映射到key上都要做hash计算的 比数组慢、
  • map(映射)不方便判断相等

回溯算法

都可以抽象为树形结构!高度有限的树(N叉树)!
都是在集合中递归查找子集,集合的大小就构成了树的宽度;递归的深度,都构成的树的深度。
回溯函数也就是递归函数,回溯是递归的副产品
本质:穷举
组合与排列:组合是不强调元素顺序的-无序,排列是强调元素顺序-有序。

回溯算法模板

void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }

    for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
        处理节点;
        backtracking(路径,选择列表); // 递归
        回溯,撤销处理结果
    }
}

其他定义:

深度优先遍历:目的达到叶子节点

posted @ 2022-03-14 18:19  ice猫猫3  阅读(47)  评论(0编辑  收藏  举报