一个技术人天马行空的一亩田

技术需要土壤来扎根,技术需要土壤来成长,技术人更需要土壤来吐槽~

AI绘画尝鲜

PAI初窥

关于AI作画,我已经关注了一段时间了。 比如: 网上有报道的某些商家利用AI作画,做出来的图直接裱一下,能卖好几大百,有些图能卖上千元。 也有报道某些画师发声,觉得开始被AI抢了饭碗 也有抵触的声音,说AI作画就是堆砌,作画没有主题,没有灵魂 再者也有声音讨论关于AI作画版权的问题,毕竟模型训练是需要投喂作品的 当然还有些大神画师完全不虚,觉得AI作画是必然的,也是对低端画师的一个竞争 等......

使用ANT进行文件的字符替换

ANT技能回顾

说实话没接触 Apache ant 挺长时间了,几乎被我忘记在了某个角落。 今天在某一个项目中发现。 有个配置文件,每次在发布打包的时候都需要改成生产配置,然而本地DEBUG和开发的时候又需要改成本地设置。 这个操作从工作量上说,确实没啥,但时间长了就觉得太麻烦了。这种事情我是比较忍不了的。 这个项目目前是用 ANT 构建的,那么我们当然可以使用 ANT 来完成我们需要的属性替换。 搭建AN......
CI

使用线段树(SegmentTree)求解区间和

SegmentTree算法示例

介绍 线段树(segment tree),顾名思义, 是用来存放给定区间(segment, or interval)内对应信息的一种数据结构。与树状数组(binary indexed tree)相似,线段树也用来处理数组相应的区间查询(range query)和元素更新(update)操作。与树状数组不同的是,线段树不止可以适用于区间求和的查询,也可以进行区间最大值,区间最小值(Range ......

BinaryIndexedTree求解指定范围和

BinaryIndexedTree算法示例

简介 树状数组或二叉索引树 Binary Indexed Tree,又以其发明者命名为 Fenwick树。其初衷是解决数据压缩里的累积频率的计算问题,现多用于高效计算数列的前缀和, 区间和。 代码实现 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525......

如何自定义一个栈

使用堆内存实现栈

场景 最近练算法题的时候,有这么一个情况。题目限制了栈内存的大小,但是根据题目要求呢,确实是需要使用栈来完成的,例如 DFS算法。 那么这个时候就需要我们自己来实现栈了,具体如下。 算法示例 12345678910111213141516171819202122232425262728293031import java.util.HashSet;import java.util.Linked......

CyclicBarrier的小例子

干饭人来展示如何使用CyclicBarrier

简介&场景 假如有若干个线程,当多个线程都达到某一个点之后才能开始时就可以使用CyclicBarrier来实现。 有这么一个虚拟的场景: 有一群小伙伴去吃饭,能去吃饭的地有个小板车,班车每次坐满三人发车。假如没有坐满三人,十秒后发车。 下面就看看我们怎么来实现。 编码示例 123456789101112131415161718192021222324252627282930313......

学会如何使用延迟队列

一个例子包教会使用DelayQueue

场景 通常在我们需要实现一个顺序执行的管理器时,会使用一个队列来完成。 队列的数据结构决定了,只有前一个任务被执行消费掉,才能轮到下一个任务。其分配到资源就可以执行自身的业务了。 但是一般情况下,队列都是执行完一个之后就紧接着执行下一个了,中间是没有停顿的。例如java的 ArrayDeque<E> 、 PriorityQueue<E> 等JDK的默认实现。 那么,如......

运动会上的CountDownLatch

用百米赛跑展示CountDownLatch的用法

田径运动会 点开这篇文章的你,突然感觉眼前一晃,我们已经穿越到了2008年的鸟巢,现在马上将要开始的项目的正是田径之王——百米短跑。 身为Coder的你突然想到,如果用代码来模拟赛跑,应该怎么实现呢? 于是你想到了使用线程来模拟每个运动员,每个线程都运行结束则表示选手都到达了终点,比赛结束。 那么,怎么来处理每个选手都完成比赛了呢。反正我是笨笨的想到了用 AtomicInteger 共享变量......

迪杰斯特拉(Dijkstra)算法模板

个人算法练习总结贴

迪杰斯特拉算法 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。 注意:注意该算法要求图中不存在负权边。 迪杰斯特拉算法是在BFS算法的......

移动矩阵的问题求解方法

个人算法练习总结贴

题目介绍 最近练题的过程中,遇到这么一种情况:在一个二维矩阵中,有一个小的固定的图形,需要移动这个小的图形到达某个指定的位置,求最短距离。 图形化的题目看起来长下面这个样子: 其中: S:表示起始位置 O:表示目标位置,S 接触到 O 为终止条件 W:表示水域,是不可通过的区域 这个图还没看明白题目的话,不要紧。看下面这张图!!! 对滴!就是90坦克大战的简易版(暴露年龄,哈哈~),......