算法-LeetCode
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
java:给定字符串,求其最长不重复子串
问题描述:输入:abdca 返回:abdc方法一:暴力解析:遍历出给定字符串的所有子串,判断其中是否有重复字符,没有则记录长度,与下一次也无重复字符的子串比较长度,最长的即为所求。代码:public static String noDuplicate(String str) { if(str==null||str.length()==0){ ...转载 2019-11-28 12:36:49 · 3622 阅读 · 2 评论 -
LeetCode-两数&三数之和系列问题
三数之和LintCode57 三数之和解题思路:先对数组排序,然后开始遍历,对于数组中的每一个元素,用两指针往中间夹,直到找出所有的解。时间复杂度 O(n^2).ps:为什么会想到对数组元素进行排序呢,排序是为了让元素之间呈现出某种规律,处理起来会简单很多。所以,当你觉得一个似乎无从下手的问题的时候,不妨尝试去寻找或制造一种“规律”,排序是手段之一。 publi...转载 2018-05-14 12:26:30 · 1959 阅读 · 0 评论 -
【Java数据结构】判断单链表是否有环,并且找出环的入口
一:判断是否有环思路:使用快慢引用法解决 是否有环假设链表是一个有环链表,且由f指向c构成环。那么使用两个指针A 和 B,让两指针同时向后遍历而且B的遍历速度是A的两倍,呢么如果是有环的话,B终究会追上A。因此我们可以 以AB是否相遇作为判断是否有环的必要条件。下面是图例:...转载 2019-09-19 12:06:05 · 806 阅读 · 0 评论 -
理解单链表的反转(java实现)
要求很简单,输入一个链表,反转链表后,输出新链表的表头。 反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。递归法总体来说,递归法是从最后一个Node开始,在弹栈的过程中将指针顺序置换的。为了方便理解,我们以 1->2->3->4这个链表...转载 2019-09-19 13:31:51 · 563 阅读 · 0 评论