![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 75
月夜虎
这个作者很懒,什么都没留下…
展开
-
算法篇之数组右移
前言最近看到有关数组右移的面试题,感觉有点意思,就和大家分享一下吧!题目将一个长度为size的数组A内的元素循环右移n位(当然左移也可以),比如数组 {1, 2, 3, 4, 5}右移3位之后就变成{3, 4, 5, 1, 2}。注:这道题其实难度不大,接下来和大家分享一下三种方法吧:解题详解第一种方法也是最常见的,也是最容易想到的:想法用一个一样大小的格外空间...原创 2020-05-07 21:52:54 · 2326 阅读 · 0 评论 -
练练算法,实现一个小型的搜索引擎,慢慢聊一聊
(先上总图吧,后面慢慢讲讲~~总结一下)原创 2020-03-25 21:25:23 · 245 阅读 · 0 评论 -
基本排序(后续补充)
1.基本排序算法:(5(3+2)+3)5:3-1.冒泡(稳定),// 冒泡排序,a 表示数组,n 表示数组大小public void bubbleSort(int[] a, int n) { if (n <= 1) return; for (int i = 0; i < n; ++i) { // 提前退出冒泡循环的标志位 boolean fla...原创 2018-11-12 14:11:21 · 288 阅读 · 0 评论 -
就前缀树实现敏感字的替换问题
首先,我们可以先定义一个敏感字的默认替换:private static final String DEFAULT_REPLACEMENT = "***";接下来,我们可以构建相应的前缀树:前面的前缀树,只是针对于英文中的26个字母,而,接下来我们实现的是针对中文,所以,我们可以用hashmap来实现其的保存功能,下面,我们来构建相对应的树:(同时实现add, get, setKeyw...原创 2018-10-22 23:22:43 · 348 阅读 · 0 评论 -
算法之字符串匹配问题(Java练习题)
字符串匹配问题 【题目】 给定字符串str,其中绝对不含有字符'.'和'*'。再给定字符串exp, 其中可以含有'.'或'*','*'字符不能是exp的首字符,并且任意两个 '*'字符不相邻。exp中的'.'代表任何一个字符,exp中的'*'表示'*' 的前一个字符可以有0个或者多个。请写一个函数,判断str是否能被 exp匹配。 【举例】 str="abc",exp="abc",返回true。 str="abc",exp=&转载 2018-07-12 17:05:06 · 3093 阅读 · 0 评论 -
算法之数组查找(Java)
贼简单,就是很。。。引用左程云大神的话,有点诡绝,加有点意思,所以才放出来,无它 public static boolean Find(int[][] arr, int num) { int i = 0; int j = arr[0].length - 1; while ( j >= 0 && i < arr.length) { if (arr[i][...原创 2018-07-05 00:23:01 · 241 阅读 · 0 评论 -
算法之window问题(Java)
规定窗口最大范围容量,持续更新其最大值。想法:左右双标,保证范围大小,用一个双端队列存储,保证:队列中后面的要比前面的小,却晚到的替代先到的,因为其晚过期。(后面更新:去除左右双标,减少多余变量,用"i-num+1"来确定)代码如下: public static int[] window(int[] arr, int num) { if (arr.length < 1 || arr ==...原创 2018-06-28 22:21:35 · 134 阅读 · 0 评论 -
算法之运算公式(Java)
给定一个字符串str,str表示一个公式,公式里可能有整数、加减乘除符号和 左右括号,返回公式的计算结果。 【举例】 str="48*((70-65)-43)+8*1",返回-1816。 str="3+1*4",返回7。 str="3+(1*4)",返回7。 【说明】 1.可以认为给定的字符串一定是正确的公式,即不需要对str做公式有效性检 查。 如"-3*4"和"(-3*4)"都是合法的。 ...转载 2018-06-21 16:49:47 · 1029 阅读 · 0 评论 -
算法之最长累计和篇(Java)
给定一个数组arr,和一个整数num,求在arr中,累加和等于num的最长 子数组的长度例子: arr = {7,3,2,1,1,7,7,7} num = 7 其中有很多的子数组累加和等于7,但是最长的子数组是{3,2,1,1},所 以返回其长度4 public static int zzzi_sumisit(int[] arr, int k) { if (arr == null || a...转载 2018-06-22 10:44:25 · 548 阅读 · 0 评论 -
算法之楼轮廓问题(Java)
水平面上有 N 座大楼,每座大楼都是矩阵的形状,可以用一个三元组表示 (start, end, height),分别代表其在x轴上的起点,终点和高度。大楼之间从远处看可能会重叠,求出 N 座大楼的外轮廓线。外轮廓线的表示方法为若干三元组,每个三元组包含三个数字 (start, end, height),代表这段轮廓的起始位置,终止位置和高度。请注意合并同样高度的相邻轮廓,不同的轮廓线在x轴上不能有...转载 2018-06-25 20:06:26 · 423 阅读 · 0 评论 -
算法之前缀树(Java)
前缀树:略前缀树简单实现:(简单的添加和查找,和删除操作) public static class Node { public int path; public int end; public Node[] next; public Node() { path = 0; end = 0; next = new Node[26]; } } pu...原创 2018-07-02 00:35:59 · 1104 阅读 · 0 评论