- 博客(4)
- 收藏
- 关注
原创 KMP-模式串匹配
例如串1:aabaac 串2:aac ,当i和j分别走到第2个位置时,b不等于c,但b前面的aa和c前面的aa则完全匹配,这时j不需要从头开始匹配,只需要将j从1开始匹配就行,j=2前面的a与i=2前面的a可以匹配上。可以发现a不等于b,则i不动,考虑j回退到的位置,此时j回退到0,仍然不相等,此时j不能回退了,i++,j++继续比较,相同字符时,i++和j++,直到j>串2.length.示例2:字符串1:String1=“leetcode”,String2=“leeto”,返回结果为-1.
2024-06-07 17:47:27
190
原创 两两交换链表中的结点
解题思路:观察到每次先插入的是结点的下一个结点,可以通过获取到结点的下一个结点2并插入到新链表中,并删除掉在原链表的该结点,链表head变为:1->3->4->5, 下一次课顺序获取1结点。可以得出第一次获得的结点为head.next结点,第二次获得的结点是head所指向的结点,可以通过设置一个变量i,初始为1,当i为奇数时,插入下一个结点,当i为偶数时,插入该结点。例如:链表head:1->2->3->4->5, 返回结果链表:2->1->4->3->5。
2024-05-22 15:33:19
621
原创 合并k个升序链表-三种方法
则总的比较次数为2n+3n+4n+....+kn=(2+3+....+k)n=[(2+k)(k-1)/2]n=n×(k²+k-2)/2。即总的时间复杂度为 o(list1.length+list2.length+.....+listk.length)+o(nlongn)+o(list1.length+list2.length+.....+listk.length)=o(list1.length+list2.length+.....+listk.length)+o(nlongn)
2024-05-15 17:25:40
1507
1
原创 递归+回溯解决有效括号问题
进入第19个递归(下一条语句是第一个if判断条件下的ss.delete语句),此时递归进入第一个if条件语句,ss追加(,值为()((,进入第20个递归(下一条语句是第一个if判断条件下的ss.delete语句),此次递归进入第二个if判断条件,ss追加),值为()((),进入第21个递归(下一条语句是第二个if判断条件下的ss.delete语句),此次递归进入第二个if判断条件,ss追加),值为()(()),进入第22次递归,此次递归满足出口条件,输出结果()(())。此时满足出口条件:输出((()))
2024-05-11 16:49:14
1075
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人