Yu's Blog

N皇后问题(递归解法)

描述 在N*N的棋盘上摆N个皇后,要求任何两个皇后不同行、不同列、不同斜线,问有多少种摆法。 如,N=1时,只能摆一个,一种摆法。 N=2和3时,没法摆,0种摆法。 N=8时,92种摆法。 常规方法 基本思路 一行一行摆,从第一行开始,找满足条件的位置(保证与已记录的坐标不同列、不同斜线),摆好后记

Administrator Administrator 发布于 2024-06-13

前缀树

概念 Trie 树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie 的核心思想是空间换时间。利用字符串的公共

Administrator Administrator 发布于 2024-06-13

图相关的算法

1、拓扑排序算法 描述 在有向图中找到入度为0的点,然后将该点以及该点发出的边去掉,继续找下一个入度为0的点,如此重复,按找到的顺序返回所有点 实现代码 public static List<Node> sortedTopology(Graph graph){ //准备一个Map记录该点及其

Administrator Administrator 发布于 2024-06-13

图的简单介绍

1、简介 图的存储方式 邻接表 邻接矩阵 其他自定义结构 对于不同结构的应对方式 掌握一种结构的算法,出现其他结构时,想办法转成自己掌握的结构。 模板结构 ——点集 + 边集 //图结构 public class Graph{ //图中每个点的编号和对应的点结构 public Has

Administrator Administrator 发布于 2024-06-13

几种类型的二叉树

1、搜索二叉树 概念 每棵子树都是其左子树的所有值都小于根节点,右子树的所有值都大于根节点 如何判断是否为搜索二叉树 利用中序遍历,左 中 右(一直为升序) 树形dp(树形动态规划):需要子树提供三个值,是否为BST,最小值min,最大值max 中序遍历 实现代码 递归实现: class Node{

Administrator Administrator 发布于 2024-06-13

二叉树的前序、中序、后序遍历

一、递归打印 几个顺序 例: 对每个节点的左右节点进行递归,如下 public static void recursion(Node head){ if(head == null){ return; } //第1次打印 recursion(head.l

Administrator Administrator 发布于 2024-06-13

与桶相关的排序

一、计数排序 基本思路 找出数组中最大和最小元素,并依次数据范围设定桶的数量 遍历数组,并统计每个元素出现的次数,保存到桶中 最后顺序输出每个桶(出现了多少次就输出几个该桶对应的元素) 缺点 依赖数据状况,数据范围比较大时,桶的数量就很多,很耗空间 动图演示 二、桶排序

Administrator Administrator 发布于 2024-06-13

O(NlogN)复杂度的排序

一、归并排序 时间复杂度 平均:O(NlogN) 最好:O(NlogN) 最差:O(NlogN) 额外空间复杂度 O(N) 稳定性 稳定 基本思路 arr左右两边先排好序,然后merge整合 p1指向左边最左侧,p2指向右边最左侧 p1、p2进行比较,哪边小就将值加入辅助数组help,然后++ 直到

Administrator Administrator 发布于 2024-06-13

简单的排序算法

一、异或运算 排序算法一般都涉及交换元素,所以这里首先介绍一下异或运算 核心 n ^ 0 = n; n ^ n = 0; 交换 ==注意:==必须保证两个变量的值不同(慎用) public static void swap(int[] arr, int i, int j){ arr[i]

Administrator Administrator 发布于 2024-06-13

Spring简介

1、Spring 1.1、简介 Spring框架是一个开放源代码的J2EE应用程序框架,由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson/1423612)发起,是针对bean的生命周期进行管理的轻量级容器(lightweight cont

Administrator Administrator 发布于 2024-06-13