数据结构与算法
文章平均质量分 59
分享学到的算法方面的知识
马奇德德
这个作者很懒,什么都没留下…
展开
-
数据结构程序设计——哈希表的应用(2)->哈希表解决冲突的方法
(3)在插入元素的方法中,先把通过学生姓名计算出的哈希值赋值给index,此时设置探测次数attempt为0,如果哈希表在index位置不为空那么attempt加一,再用linearProbe方法来计算下一个位置,即(index+attempt) % TABLE_SIZE。用除留余数法构建哈希表,把学生姓名以汉语拼音的形式储存在哈希表中,当发生冲突时,会使用线性探测再散列法在哈希表中的下一个位置继续搜索直到找到空槽。(3)然后,根据这个哈希值,确定存储学生姓名的位置(索引)在哈希表中的哪个位置。原创 2023-12-31 16:10:11 · 1619 阅读 · 0 评论 -
java实现找出数组中只出现一次的元素
找出数组中出现一次的元素第一种方式,双层for循环遍历数组 把每个元素都与数组中的其他元素对比,若没有相同的元素,则此元素只出现一次。第二种方式——异或 使用异或的方式有一个前提,只有一个数出现了一次,其他数都是成对出现。 利用异或的特性,用0异或数组中的每一个元素,最后结果就是我们要找的那个只出现一次的元素。第三种方式,先对数组排序,如果一个元素和它前一位或后一位的元素都不相等,则此元素在数组中只出现一次。第四种方式,使用哈希表存储数组元素原创 2023-07-19 21:46:57 · 224 阅读 · 0 评论 -
ArrayList向int[ ]转换的时候会报错
原因:ArrayList中规定的泛型是Integer,是不能够转换成Int[ ]类型的 3.使用迭代器(倾向)方法:1.转换为IntStream 2.先转换为String类型的,之后再转换为int[ ]类型原创 2023-04-01 19:26:19 · 122 阅读 · 0 评论 -
最简单的打印数组的方式
System.out.println(Arrays.toString(arr))原创 2023-03-05 15:18:13 · 719 阅读 · 0 评论 -
递归问题笔记总结
递归调用规则:1.当程序执行到一个方法的时候,就会开辟一个独立的空间(栈空间)2.方法的局部变量是独立的,不会相互影响,比如变量n3.如果方法中使用的是引用型变量,就会共享该引用型的数据4.递归必须向退出递归的条件逼近,否则就是无线递归了,死龟了5.当一个方法执行完毕,或者遇到return 就会返回,遵守谁调用,就将结果返回谁,同时当方法执行完毕或者返回的时候,该方法也就执行完毕原创 2023-02-24 15:39:37 · 73 阅读 · 1 评论 -
KMP算法思想——易理解
首先讲一下基本操作再具体分析。第一步,首先找到最长字符串不匹配的地方。声明:两个字符串我们定义下面的是模式字符串,上面的是主串。也就是箭头左边部分上下字符串是完全匹配的。第二步,模式串左右两端有两个子串AB称为模式串的公共前后缀,找到他们。第三步,直接往前移动模式字符串,使得其公共前后缀里面的前缀直接移动到了原先后缀所在的位置原创 2023-01-03 14:18:20 · 133 阅读 · 0 评论 -
双指针(实战基础版例题)
正如二人齐心,其力断金。双指针兄弟二人就像是保护森林的熊大和熊二,让我们看看他们俩是如何保护森林的吧。原创 2022-12-26 14:38:51 · 130 阅读 · 3 评论 -
队列和栈-(基础理解+实战)
1.首先理解一下他们的概念和区别2.接下来介绍一下栈和队列的一些常用方法3.接下来引入leetcode 中的第225和第232题来进行实战原创 2022-12-03 21:56:16 · 308 阅读 · 1 评论 -
二分查找法
1.首先要考虑区间的范围,是左开右闭,还是左闭右闭,这个就是循环不变量 2.对于循环里面,我们要判断left,right是mid-1,还是mid+1,还是mid原创 2022-11-26 21:06:25 · 273 阅读 · 7 评论