![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
执行者_
不在能知,而在能行。
展开
-
刷题记录(LeetCode 热题 HOT 100)
力扣热题100刷题记录原创 2023-02-28 15:08:44 · 137 阅读 · 0 评论 -
manacher算法(马拉车算法)—— 最长回文子串
时间复杂度:O(n) 空间复杂度:O(n) public class longestPalindrome_5 { public static void main(String[] args) { String s = "babac"; System.out.println(new longestPalindrome_5().longestPalindrome(s)); } /* manachaer 算法 */ public S原创 2022-03-03 16:40:39 · 215 阅读 · 0 评论 -
操作系统中的页面置换算法—LRU置换算法
链表和散列表实现: import java.util.HashMap; /** * LRU算法——least Recently Used(最近最久未使用) * 他是一个按照非常著名的计算机操作系统基础理论得来的,所有的页面置换算法都是以**最佳置换算法**作为参考的: * 最近使用的页面数据在未来一段时间内仍然会被使用,已经很久没有使用的页面数据可能在很长 的一段时间内仍然不会被访问主要衡量的指标是使用时间。 * @author zc * */ public class LRUS原创 2021-04-21 22:37:00 · 732 阅读 · 0 评论 -
八皇后问题-回溯法解决
package edu.xufe.recursive; /** * 八皇后问题--->回溯法 * @author zc * */ public class Queen8 { int max = 8; int[] arrs = new int[max]; static int count = 0; public static void main(String[] args) { Queen8 queen8 = new Queen8(); queen8.chec原创 2021-03-15 20:09:40 · 139 阅读 · 0 评论 -
递归思想——迷宫问题【回溯法】
在这里插入代码片package edu.xufe.recursive; public class MiGong { public static void main(String[] args) { int[][] map = new int[8][7];// 用数字模拟地图迷宫 for (int i = 0; i < 8; i++) { map[i][0] = 1;// 1表示墙 map[i][6] = 1; } for (int j = 0; j < 7; j原创 2021-03-15 20:12:10 · 100 阅读 · 0 评论 -
分治算法—汉诺塔问题
/** * 分治算法解决汉诺塔问题 思想:分治算法三部曲: 1.把大的问题依次分为小的问题, 2.求得最小的问题【最小问题即是可以直接求解的问题】的解 * 3.把所有小的问题的解加起来等于大问题的解 * * @author zc * */ public class DivideAndConquerAlgorithm { public static void main(String[] args) { int nums = 5; char a = 'A'; char b = '.原创 2021-04-16 17:13:00 · 65 阅读 · 0 评论 -
怎么从海量的数据中快速的查询到最值
一、怎么快速的从海量的数据当中找打最大值,最小值 找最大值,使用大顶堆; 找最小值,使用小顶堆; 大、小顶堆是一种数据结构,就是一棵根节点大于或小于左、右子节点的二叉树【左右子节点无排序要求】 话不多说直接上代码:以下代码以查找最大值为例【最小值、序列的前几个最值、堆排序稍加调整即可】 package edu.xufe.sort; import java.util.Arrays; /** * 大顶堆 + 堆排序 * @author zc * */ public class HeapSort {原创 2021-04-13 22:32:04 · 595 阅读 · 0 评论 -
字符串匹配问题——KMP算法
一、字符串匹配问题你还不懂?来,看懂这篇文章你就会了; 二、KMP算法思想 1.先得到待匹配子串的部分匹配表 很多胖友不知道啥是部分匹配表,接着看 例如:ABCDABD 它的部分匹配表就是【0,0,0,0,1,2,0】 为啥? 若子串只有一个元素,即长度为1,部分匹配值就是0; 看下图: 2.得到子串的部分匹配表后,我们分别遍历两个字符串的每一个位置的元素【i—表示母串的索引变量,j—表示子串的索引变量】,若i和j指向的位置的字符相同,则j加1【为什么加1?因为我们最终要用j的大小来判断是否等于子串原创 2021-03-24 12:29:52 · 144 阅读 · 0 评论 -
动态规划算法
动态规划算法——解决0-1背包问题【完全背包也可以转化为0-1背包问题解决】 import java.util.Arrays; /** * 动态规划算法 —— 解决0-1背包问题 * * @author lenovo * */ public class DynamicProgram { public static void main(String[] args) { int[] weight = { 1, 4, 3 }; int[] value = { 1500, 3000, 20原创 2021-04-10 21:32:01 · 123 阅读 · 0 评论