2022
05-12
05-12
java算法入门之有效的括号删除有序数组中的重复项实现strStr
目录1、LeetCode20.有效的括号题目小编菜解思路及算法大神解法2、LeetCode26.删除有序数组中的重复项题目小编菜解初版小编菜解改进版思路及算法大神解法3、LeetCode28.实现strStr题目小编菜解大神解法也许,我们永远都不会知道自己能走到何方,遇见何人,最后会变成什么样的人,但一定要记住,能让自己登高的,永远不是别人的肩膀,而是挑灯夜战的自己,人生的道路刚刚启程,当你累了倦了也不要迷茫,回头看一看,你早已不再是...
继续阅读 >
目录面试题1:你说一下常用的排序算法都有哪些?追问1:谈一谈你对快排的理解吧追问2:说一下快排的算法原理追问3:来吧!给我手敲一个快排面试题2:来!再给我手撸一个Spring追问1:哦,咳咳…说一下构成递归的前提条件有啥?追问2:递归都有哪些优缺点?追问3:给我手写一个简单的递归算法的实现吧面试题3:10亿个数中找出最大的100000个数(topK问题)总结面试题1:你说一下常用的排序算法都有哪些?追问1:谈一谈你对快排的...
目录数据结构和算法关系高斯求和算法定义算法的特性算法设计的要求算法效率的度量方法函数的渐进增长总结数据结构和算法关系虽然这个标题起的叫数据结构,但是我却总结算法。。。我不是没事找抽,只是呢,在学数据结构的时候,算法是你肯定离不开的东西。你平时在网上看到的那些文章,在你不经意间搜的时候,是不是都是搜的数据结构与算法这七个字。这说明啥,这说明他们俩是离不开的。给你打个比方,你想看德云社相声(我也想看)...
目录计数排序完整代码:桶排序完整代码:基数排序完整代码:完整测试类总结计数排序简单解释:这个排序算法看名字也很好理解,就是就是额外找个数组来计数,然后在这个数组从小到大或从大到小把数取出来即可。完整代码:packagecom.keafmd.Sequence;/***Keafmd**@ClassName:CountSort*@Description:计数排序*@author:牛哄哄的柯南*@date:2021-06-2411:31*/publicclassCountSort{publicstaticvoidcount...
目录归并排序完整代码:插入排序完整代码:希尔排序完整代码:总结归并排序简单解释:该算法是采用分治法,把数组不断分割,直至成为单个元素,然后比较再合并(合并的过程就是两部分分别从头开始比较,取出最小或最大元素的放到新的区域内,继续取两部分中最大或最小的元素,直到这两部分合并完,最后所有的都合并完,最后形成完整的有序序列)完整代码:packagecom.keafmd.Sequence;/***Keafmd**@ClassName:MergeSort*@...
目录快速排序完整代码:直接选择排序完整代码:堆排序完整代码:总结快速排序简单解释:快速排序就是每次找一个基点(第一个元素),然后两个哨兵,一个从最前面往后走,一个从最后面往前面走,如果后面那个哨兵找到了一个比基点大的数停下来,前面那个哨兵找到比基点大的数停下来,然后交换两个哨兵找到的数,如果找不到最后两个哨兵就会碰到一起就结束,最后交换基点和哨兵相遇的地方的元素,然后就将一个序列分为比基点小的一部...
目录十大排序算法对比冒泡排序完整代码:测试代码:运行结果:快速排序完整代码:总结十大排序算法对比关于最后一列的稳定性,我稍微解释下,例如对序列:12426排序,序列中存在两个2,如果我们把这两个2标记上(让他俩不同),排序之后,前面的2还在前面,那么就称这种排序是稳定的,反之不稳定。冒泡排序简单解释:原理就如算法名字一样,就像水中的气泡一样,每次我都把最大的或最小的放到最后面,这样总共需要n-1趟即可...
目录一、直接插入排序二、希尔排序三、冒泡排序四、快速排序五、选择排序(SelectionSort)六、堆排序一、堆排序的基本思想是:二、代码示例七、归并排序总结一、直接插入排序基本思想:将一个记录插入到已排序的有序表中,使插入后的表仍然有序对初始关键字{4938659776132749}进行直接插入排序packageSort;//插入排序publicclassInsertSort{publicstaticvoidmain(String[]args){int[]arr={49,38,65...
目录一、直接插入排序二、希尔排序三、冒泡排序四、快速排序五、选择排序(SelectionSort)六、堆排序七、归并排序一、直接插入排序基本思想:将一个记录插入到已排序的有序表中,使插入后的表仍然有序对初始关键字{4938659776132749}进行直接插入排序packageSort;//插入排序publicclassInsertSort{publicstaticvoidmain(String[]args){int[]arr={49,38,65,97,76,13,27,49};sort(arr);...
目录一、什么是快慢指针?二、使用快慢指针来找到链表的中点三、利用快慢指针来判断链表中是否有环四、删除链表的倒数第n个节点五、判断是否是回文链表一、什么是快慢指针?快慢指针就是定义两根指针,移动的速度一快一慢,以此来制造出自己想要的差值。这个差值可以让我们找到链表上相应的节点。那快慢指针可以解决哪些实际问题呢,接下来我们一起看看吧!二、使用快慢指针来找到链表的中点1.首先我们设置两个指针slow和fast,这2...
目录一、非对称加密二、RSA算法三、RSA算法Java语言实现一、非对称加密非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将...