算法
Lucky_Dog_c
Bug Maker
展开
-
合并两个有序数组
合并两个有序数组原创 2024-01-25 17:02:33 · 405 阅读 · 0 评论 -
最接近的三数之和(力扣第16题)
最接近的三数之和(力扣第16题)原创 2022-11-27 21:59:40 · 108 阅读 · 0 评论 -
分割链表(力扣第86题)
分割链表(力扣第86题)原创 2022-11-27 19:49:42 · 180 阅读 · 0 评论 -
串联所有单词的子串
串联所有单词的子串原创 2022-11-26 21:44:40 · 419 阅读 · 0 评论 -
字母异位词分组
字母异位词分组原创 2022-11-24 22:11:57 · 67 阅读 · 0 评论 -
无重复字符的最长子串
无重复字符的最长子串原创 2022-11-24 20:48:10 · 56 阅读 · 0 评论 -
KMP_字符串匹配02
KMP源串S,模式串P,返回源串中包含的模式串的第一个字符下标KMP是借用next[]数组将字符串匹配问题的复杂度由暴力求解法的O(m*n)降为**O(m+n)**的算法暴力解法是用两个指针将模式串与源串字从第一个字符开始匹配,如果相同匹配下一个字符,当匹配到一个不相同的字符时,源串指针回溯到第二个字符再次与模式串第一个字符进行匹配KMP算法只回溯模式串不对源串进行回溯,当匹配到不相同的字...原创 2020-04-15 21:27:25 · 84 阅读 · 0 评论 -
RabinKap_字符串匹配01
RabinKap滚动hash法对目标字符串按d进制求值,mod h 取余作为其hash对源串,依次求出m个字符的hash,保存在数组中(滚动计算)匹配时,只需比对目标串的hash值和预存的源串的hash值表public class RabinKap { final static long seed = 31; //定义一个种子数 public static void main...原创 2020-04-13 22:32:21 · 158 阅读 · 0 评论 -
最短生成摘要_Alibaba笔试题
题目:给定一段产品的英文描述,包含M个英文单词,每个英文单词以空格分隔,无其他标点符号;在给定N个英文关键字,请说明思路并编程实现方法运用尺取法求解import java.util.Arrays;public class 最短生成摘要 { public static void main(String[] args) { solve(new String[]{"t","a","......原创 2020-04-12 00:59:37 · 130 阅读 · 1 评论 -
十大排序_(3)插入排序
插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。1. 算法步骤将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最...原创 2019-10-03 18:07:50 · 120 阅读 · 0 评论 -
十大排序_(2)选择排序
选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²)的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。算法步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。import java.util.Arrays...原创 2019-09-28 21:35:50 · 127 阅读 · 0 评论 -
十大排序_(1)冒泡排序
冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开...原创 2019-09-28 10:30:44 · 151 阅读 · 0 评论