后端

37. 解数独

37. 解数独(难度:困难) 题目链接: 编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。

06《算法入门教程》快速排序

1. 前言 本节内容是排序算法系列之一:快速排序,主要讲解了快速排序的主体思路,选取了一个待排序的数字列表对快速排序算法进行了演示,给出了快速排序算法的 Java 代码实现,帮助大家可以更好地理解快速排序算法。 2. 什么是快速排序? 快速排序(Quick Sort),是计算机科学与技术领域中非常经典的一种排序算法,应用分治思想进行排序。 快速排序由于其时间复杂度优于大部分的排序算法,因而命名为快

使用栈解决简单迷宫

用二维列表模拟迷宫,1代表墙,0代表当前路是可以通过的 回溯法的核心是状态的转换,当当前状态不能进入下一状态,我们就回溯到之前能进入下一状态的某状态结点,我们用栈的append和pop去模拟这一过程 # 起始位置为(1, 1) 终点位置为(8, 8) maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 1, 0, 0, 0, 1,

Spring aspect 深度解析

介绍 Spring AOP的实现逻辑在AnnotationAwareAspectJAutoProxyCreator类,AOP的核心在于Bean对象初始化过程中如何查找关联的advice并通过创建动态代理。 针对每个Bean在初始化过程中会遍历spring的context上下文查找所有的aop的切面对象,并针对切面对象的每个方法生成一个advisor对象用以匹配每个目标方法。 关于动态代理包括Jd

设计模式-创建者模式-单例模式

零、 本文纲要 一、 单例模式 饿汉式 ① 静态变量方式 ② 静态代码块 ③ 枚举 懒汉式 ① 静态方法(线程不安全) ② 静态synchronized方法(线程安全) ③ 静态方法双检锁(线程不安全) ④ 静态方法双检锁volatile优化(线程安全) ⑤ 静态内部类(线程安全) 二、 单例模式问题解决 防止序列化破坏单例 防止反射破坏单例 三、 JDK中存在的单例模式 ja

第一章 理解高性能程序(7) 扩展指令集

附加指令集        前面提到,为了提升处理器的性能,芯片制造商开始增加一些复杂指令,这些指令可以做向量计算或者执行一些以前通常在应用层代码中实现的算法。        SIMD和向量指令可以通过并行计算多个标量值的方式对标量运算实现并行处理。因此,我们必须可以一次加载多个浮点数到两组SIMD寄存器,之后一次性地对所有加载的数据进行操作。Intel处理器在一系列的扩展指令集中引入了SIMD

Java计算程序代码耗时、计算程序运行的毫秒数的几种方式,几个StopWatch的区别。

写代码的时候我们经常需要用到计时操作,来检测一段代码的性能,以便于做一些优化。本文主要说明计时的集中方式,可以根据自己的情况进行选择。 第一种也是最常用最简单的,使用System.currentTimemillis() long startMillis = System.currentTimeMillis(); Thread.sleep(1000L); long endMillis = Syst

Android - 性能优化之数据结构

什么是性能优化 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的享受,这样才能提供用户体验 优化目的 性能指标 优化方法 更快 流畅性 启动速度,页面显示速度(显示和切换),响应速度 更稳定 稳定性 避免出现应用崩溃(Crash),避免出现应用无响应(ANR) 更省 资源节省性 内存大小,安装包大小,耗电量,网络流量 线性数据结构 数组

第4章 节点伸缩的实现

阿里云K8s集群的节点可以动态增加或减少。集群可以在计算资源不足的情况下扩容,增加新的节点,同时也可以在资源利用率降低的时候,释放节点以节省费用。 4.1 节点增加原理 4.1.1 手动添加已有节点 节点准备,就是把一个普通的ECS实例安装配置程一个K8s集群节点的过程。这个过程仅靠一条命令就可以完成。这条命令使用curl下载attach_node.s