04 2021 档案

摘要:代码有一个bug,当数组长度为13的时候,查找数组最后一个数时会报数组角标越界。将代码: //获取到斐波那契分割数值的下标 while (high > f[k] - 1) { k++; } 改成 //获取到斐波那契分割数值的下标 while (high >= f[k] - 1) { k++; } 就 阅读全文
posted @ 2021-04-29 23:45 imissinstagram 阅读(85) 评论(0) 推荐(0)
摘要:快排: public static void quickSort(int[] arr, int left, int right) { int l = left;//左下标 int r = right;//右下标 int temp = 0;//临时变量,交换时使用 //pivot 中轴值 int pi 阅读全文
posted @ 2021-04-28 07:39 imissinstagram 阅读(106) 评论(0) 推荐(0)
摘要:还是韩顺平的数据结构,由于他讲的十分不清楚所以在这里记录一下。 代码如下: import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int[] arr = {4, 5, 3, 阅读全文
posted @ 2021-04-27 11:23 imissinstagram 阅读(243) 评论(0) 推荐(0)
摘要:韩顺平讲的,用数组模拟栈,再用栈做一个简单的计算器https://www.bilibili.com/video/BV1E4411H73v?p=35 其中韩顺平给出的代码有一些问题,当计算形如A - B * C + D这种式子的时候结果会出错,比如计算: 5 - 2 * 3 + 1 计算结果为-2 原 阅读全文
posted @ 2021-04-22 19:31 imissinstagram 阅读(95) 评论(0) 推荐(0)
摘要:如果对于一个已经创建好的链表进行如下操作: singleLinkedList.head = singleLinkedList.head.next; singleLinkedList.list(); 将链表头从第一个元素指向了第二个元素,那么链表头的元素会被回收。此时head指向第二个元素,第一个元素 阅读全文
posted @ 2021-04-20 10:51 imissinstagram 阅读(108) 评论(0) 推荐(0)
摘要:之前总结过一个单向链表反转的范式https://www.cnblogs.com/LostSecretGarden/p/14658018.html 对于双向链表的反转操作,可以继续套用上述的范式,但是在一些细节之处需要修改: public void reverseList() { if (head.n 阅读全文
posted @ 2021-04-16 20:39 imissinstagram 阅读(424) 评论(0) 推荐(0)
摘要:双向链表按顺序添加Node的时候,要先处理Node后面的指针,再处理Node前面的指针,原因在于: 如果先把Node和链表前半截连起来,链表前半截指向链表后半截的指针就没了,这样后半截链表就找不到了 先把Node和链表后半截连起来,这样由于Node是可以直接找到的,所以可以进行将Node和链表前半截 阅读全文
posted @ 2021-04-16 10:52 imissinstagram 阅读(568) 评论(0) 推荐(0)
摘要:方法思路是先比较链表一和链表二的第一个元素的值,将值较小的连接到主链表上,假定链表一的值小,那么链表一的指针后移,让链表一的第二个元素和链表二的第一个元素比较,以此类推。 public class MergeLinkedList { public static void main(String[] 阅读全文
posted @ 2021-04-14 22:17 imissinstagram 阅读(119) 评论(0) 推荐(0)
摘要:单向链表反转的方法代码: public void reverseList(Node head) { //如果单向链表为空,或者只有一个节点,无需反转,直接返回 if (head.next == null || head.next.next == null) { return; } //定义一个辅助指 阅读全文
posted @ 2021-04-14 15:11 imissinstagram 阅读(308) 评论(0) 推荐(0)
摘要:需要注意以下两点: 如果你使用的是https://github.com/BruceZhaoR/Zh-beamer提供的模版,切记把文件beamer_default.tex里面 \usepackage{xecjk} 改成 \usepackage{xeCJK} 如果你使用macOS且用了https:// 阅读全文
posted @ 2021-04-14 00:30 imissinstagram 阅读(210) 评论(0) 推荐(0)
摘要:环形队列可以用图示阐明: 当用数组去构建环形队列的时候,数组初始化完成后,其实环形队列各位置的索引就已经确定了。所以在写环形队列的增删改查时需要考虑对数组最大容量取模,因为位置8过去马上就成为位置1。 阅读全文
posted @ 2021-04-14 00:20 imissinstagram 阅读(219) 评论(0) 推荐(0)
摘要:对于链表添加操作,假如不考虑按序号添加,则可以写一个简单的方法: public void add(HeroNode heroNode) { //因为head节点不能动,因此我们需要一个辅助变量遍历 HeroNode temp = head; //遍历链表,找到最后 while (true) { // 阅读全文
posted @ 2021-04-14 00:12 imissinstagram 阅读(369) 评论(0) 推荐(0)
摘要:还原二维数组的稀疏数组的时候,需要确定稀疏数组的行数。对于这种稀疏数组,列数总是3。 11 11 2 1 2 1 2 3 2 对于上面这个稀疏数组,右上角的2代表了二维数组中的非0元素个数,第一行的两个11代表二维数组为11乘11的数组。问题的关键在于提取右上角的数字,把这个数字加1,就可以确定稀疏 阅读全文
posted @ 2021-04-13 17:02 imissinstagram 阅读(88) 评论(0) 推荐(0)