java实现顺序表 本文介绍了顺序表的概念及其在Java中的实现。顺序表是一种线性表,通过数组形式存储数据,使得逻辑上相邻的元素在物理存储单元中也相邻。文章首先定义了`IList`接口,该接口包含了对顺序表进行操作的方法,如清空、判断是否为空、获取长度、获取指定位置的元素、插入和删除元素、查找元素以及显示所有元素等。接着,通过`SqList`类实现了`IList`接口,提供了具体的顺序表实现。`SqList`类内部使用一个对象数组`listElem`来存储元素,并通过`curlen`变量跟踪当前实际存储的元素数量。此外,还详细展示了如何具体实现这些方法以支持顺序表的基本操作。 2021-04-27 848 0 java 总结 数据结构
【力扣】环路检测 本文介绍了如何检测链表中的环,并找到环的起始节点。文章提供了两种方法:第一种是使用集合(Set)存储遍历过的节点,当遇到重复节点时即为环的入口;第二种方法利用快慢指针技巧,通过让两个指针以不同速度移动来检测环的存在。当快慢指针相遇时,再引入一个从头开始的新指针与慢指针同步移动,直到两者再次相遇,此时相遇点即为环的起点。这种方法不需要额外空间,更加高效。代码示例展示了这两种解决方案的具体实现。 2021-04-26 971 0 java 总结 数据结构 力扣
【力扣】链表相交 本文介绍了如何判断两个单向链表是否相交,并找到它们的交点。题目要求基于节点引用而不是值来判断相交。文章提供了两种解法:第一种是使用集合(Set)存储第一个链表的所有节点,然后遍历第二个链表检查是否存在相同的节点;第二种方法是采用双指针技术,通过调整两个指针的移动路径,使得当一个指针到达链表末尾时转向另一个链表头部继续遍历,最终两指针会在相交节点相遇或同时为null。这两种方法都能有效地解决问题,且后者满足O(n)时间复杂度和O(1)空间复杂度的要求。 2021-04-25 969 0 java 总结 数据结构 力扣
【力扣】回文链表 该文章介绍了两种方法来判断一个链表是否为回文结构。第一种方法是将链表中的所有元素复制到数组中,然后使用双指针技术从两端向中间移动并比较元素值,时间复杂度为O(n),空间复杂度为O(n)。第二种方法则是先找到链表的中点,反转后半部分链表,之后再逐个比较前半部分与反转后的后半部分节点值,以确定整个链表是否构成回文。这种方法在保持O(n)时间复杂度的同时,仅需O(1)的空间复杂度。通过这两种不同的方式,可以有效解决检查链表是否为回文的问题。 2021-04-24 942 0 java 问题 数据结构 力扣
【力扣】链表求和 该题目要求实现一个函数,用于计算两个以链表形式表示的整数之和,并将结果同样以链表形式返回。给定的链表中每个节点包含一个数位,且这些数位是反向存放的(即个位在链表头部)。解题思路模仿了基本的加法运算规则:逐位相加并处理进位。具体实现时,通过遍历两个输入链表,同时维护一个额外变量`carray`来追踪当前是否有进位需要处理。每一步都创建一个新的链表节点来存储当前位的结果值(即两数相应位及进位之和对10取余),并将这个新节点添加到结果链表中。最后返回构建好的结果链表,去除最开始为了方便操作而创建的虚拟头节点。对于更进一步的问题,如果数字是正向存放,则需要先反转链表再进行上述相同的操作。 2021-04-22 1185 0 java 总结 数据结构 力扣
Java中的相除(/)和取余(%) 该文通过一段Java代码示例,详细解释了整数除法和取余运算的规则。在给定的代码中,变量a、b、c、d、e、f、h、j分别代表不同情况下的除法和取余结果。文章指出,当被除数小于除数时(如5/13),商为0而余数等于被除数本身;对于负数参与的运算(如-13 % 5, 13 % -5),最终余数的符号取决于第一个操作数。具体来说,这段代码展示了如何使用Java进行基本算术操作,并特别强调了正负数处理以及取余运算中的一些特殊规则。 2021-04-22 804 0 java 总结
【力扣】分割链表 该题目要求编写一个程序,以给定值x为基准分割链表,确保所有小于x的节点位于大于或等于x的节点之前。解题思路是遍历原始链表,将小于x的节点添加到一个小链表中,大于等于x的节点则加入另一个大链表。最后,将这两个链表连接起来形成新的有序链表。具体实现时,通过创建两个虚拟头节点来分别管理小链表和大链表,在完成对原链表的遍历后,将大链表接在小链表之后,并返回合并后的链表头部。这样就完成了链表的重新排序。 2021-04-21 948 0 java 总结 数据结构 力扣
【力扣】返回倒数第k个节点 本文介绍了两种解决LeetCode中“寻找单向链表倒数第k个节点”问题的方法。第一种方法通过两次遍历实现:首先遍历整个链表以计算节点总数,然后再次遍历至指定位置找到目标节点。第二种方法采用双指针技术仅需一次遍历完成任务,其中一个指针先于另一个移动k步,随后两者同步前进直至前者到达链尾,此时后者所指向的即为所求节点。这种方法提高了效率,减少了遍历次数。 2021-04-18 902 0 总结 问题 数据结构 力扣
springboot打包错误,出现 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0 文章介绍了如何通过修改`maven-resources-plugin`插件的版本来解决某些构建问题的方法。具体步骤是在Maven项目的`pom.xml`文件中的`<build>`标签下的`<plugins>`部分找到`maven-resources-plugin`,然后将其`<version>`标签值更改为`2.4.3`。这样可以确保项目在使用Spring Boot Maven插件的同时,资源处理插件也能够正确地工作,从而避免潜在的构建错误或资源处理不当的问题。这种方法适用于遇到与资源处理相关的构建失败时尝试解决。 2021-04-18 898 0 java 问题 springboot
链表:双向链表,循环链表概念及其对比 本文介绍了双向链表和循环链表的概念、设计及基本操作。双向链表在单链表的基础上增加了前驱指针,使得每个节点可以方便地访问其前后节点,提高了数据搜索效率。双向链表的插入和删除操作需调整新节点及其前后节点的指针指向。循环链表则通过将尾节点指向头节点形成闭环,分为单向和双向两种类型。单循环链表允许从任一节点出发访问所有节点,而双循环链表支持双向访问。文章还对比了单链表、双链表与循环链表的特点,在存储密度、插入删除灵活性等方面进行了分析。 2021-04-16 974 0 java 总结 数据结构