
算法
文章平均质量分 62
以掌握各类算法核心思想并灵活应用为目标
Hiker帝国
大脑应似激流,翻腾汹涌,振荡不息。
编程思想大于技术。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
敏感词过滤算法
一、DFADFA全称为:Deterministic Finite Automaton,即确定有穷自动机。通过list来构造map树,叶子节点map只包含键值对isend=1;结构展示:java实现如下: /** * 通过list构造map树,返回根map * @param list * @return */ private Map<String, Object> getPreMap(List<Str...原创 2021-08-08 17:18:28 · 2197 阅读 · 3 评论 -
算法题型归类整理及同类题型解法思路总结(持续更新)
1、递归。原创 2024-07-01 00:40:15 · 1408 阅读 · 0 评论 -
二进制常用知识整理<java>
二进制数在前面加0b八进制数在前面加0十进制数正常按十进制填写十六进制数在前面加0x。原创 2024-06-29 18:54:35 · 275 阅读 · 0 评论 -
千奇百怪的动态规划
对于动态规划,正常人容易思维定势,一上来就拿每个dp元素直接用来代表自己想要的结果,很多算法题对于这样的思路根本就是死路,本文章前期主要收集各种各样非常规思路的动态规划算法题(中等及以上难度),后期进行动态规划思想提炼和此类算法题的解法思路总结。原创 2024-06-29 01:12:48 · 549 阅读 · 0 评论 -
使用递归时的几种优秀处理手法(持续更新中,欢迎评论补充)
遇到出现同样的参数多次递归调用时,可以添加记忆缓存,以空间换时间。原理说明:1、如下面案例中的递归,调用时每次都从n执行到0(n一次衰减),则可能存在n-1的阶乘次重复参数调用,这里将重复部分都缓存起来,达到了跟动态规划类似的效果。下面的力扣案例,没加缓存记忆会执行超时,增加后顺利通过。给你一个整数n和一个二维数组,其中表示这个要求中的末尾下标和的数目。整数数组nums中一个下标对(i, j)如果满足以下条件,那么它们被称为一个i < j请你返回的排列perm的数目,满足对的都有恰好有cnti。原创 2024-06-26 03:14:25 · 881 阅读 · 0 评论 -
0基础学习线段树
元素都。原创 2024-06-23 04:21:34 · 1037 阅读 · 0 评论 -
递归的通用代码结构剖析【待持续补充】
递归调用一般有下面三个部分的结构: 终止条件,如:if(){ return (void/int/boolean)}引用变量加工,如dp[i][j] = true;说明:1、该处代码逻辑递归层次越上方的越先执行到,即每次执行前先判断或者加工的代码逻辑。2、如果递归在for循环里面进行调用,终止条件为:最后一次调用时不再走到递归调用代码,可能场景: 1)、for循环最后一次递归时循环0次; 2)、for循环里面增加了if条件,只有满足if条件的才会进行递归调用,即最深一原创 2024-06-22 02:40:04 · 344 阅读 · 0 评论 -
工作中不常用到的好用的数据结构
LinkedList:同时具有list集合、双端队列、栈、队列的功能,对应相应的api方法;LinkedHashSet:插入按插入先后顺序,重复值直接丢弃,不会影响前面已经存在的顺序;LinkedHashMap():key插入按key插入先后有序;TreeMap():Key插入按key自然顺序;HashSet:插入后无序,性能好;TreeSet:插入按自然排序;原创 2024-06-17 19:23:49 · 108 阅读 · 0 评论 -
学习几个比较方便java1.8 API
/ list.toArray(new String[list.size()]) 集合转数组。// String.join(" ",数组) 数组转字符串。原创 2024-06-15 04:18:56 · 100 阅读 · 0 评论 -
LinkedList双端队列的方法
add()/remove():添加到队尾/从队头删除。offer()/poll():添加到队尾/从队头删除。push()/pop():添加到队头/从队头删除。原创 2024-06-12 00:30:32 · 197 阅读 · 0 评论 -
DFS递归算法与BFS迭代算法实例总结
【代码】DFS递归算法与BFS迭代算法实例总结。原创 2024-06-05 18:10:16 · 176 阅读 · 0 评论 -
java中double类型为什么会丢失精度?(从我们熟悉的10进制去看计算机的2进制精度)
第二篇:java中double类型为什么会丢失精度?(从我们熟悉的10进制去看计算机的2进制精度)前言相信大家在学习java的基本数据类型的时候都听过float和double类型都存在精度损失问题,具体什么原因很多同学都没有去进一步深究,这一篇就这个问题做一下讨论。一、从10进制去看基本数据类型double精度丢失问题0.012;第一个小数位为什么是0?因为0=0.012*10=0.12得不到正整数,第一个小数位能表示的最小数为1/10,最大数为9*1/100.012;第二个小数位为什么.原创 2021-06-20 14:23:12 · 3024 阅读 · 0 评论 -
彻底搞清楚java中的移位运算
目录1、左移<<(不分有符号和无符号,这一点与右移不同)2、右移:分为带符号右移>>和不带符号右移>>>3、相关面试题让你更加融会贯通1、左移<<(不分有符号和无符号,这一点与右移不同)要点1:忽略左边任何位包括符号位置,右边补0;例如,1往左移动31位,则符号位变为1,于是变成了int中最小的负整数;要点2:如果移动的位数超过了int的最大可移动位数31位,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%原创 2021-06-23 22:41:30 · 1526 阅读 · 2 评论 -
同学们初学二进制的几个常见疑问
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习..原创 2021-06-14 11:44:40 · 1809 阅读 · 1 评论