Leetcode
monbling
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 58 - I. 翻转单词顺序 Java
leetcode题目描述解题方法—java倒叙遍历字符串,设置两个指针,代表要分割的字符串的首尾下标。结果字符串要经常改动,所以使用StringBuilder,最后再转化为字符串。class Solution { public String reverseWords(String s) { s = s.trim();//去掉首尾空格 StringBuilder res = new StringBuilder(); int j = s.leng原创 2021-05-26 14:33:41 · 72 阅读 · 0 评论 -
【Leetcode】 面试题 环路检测(Java)
题目描述:给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。快慢指针法思路:设置两个指针,快的步长为2,慢的步长为1。如果链表中存在环路,那么快慢指针一定会在环内相遇。这个题的关键是通过找到快慢指针相遇的点,得到一个关系式。假设快慢指针在图中紫色的点相遇,那么此时慢指针所走的距离为a+b。快指针所走的距离为a+n(b+c)+b 。而快指针的距离应为慢指针距离的二倍,即a+n(b+c)+b = 2(a+b)⟹ a=c+(n−1)(b+c)。【这里需要证明快慢指针相遇时,慢指针一定在第一原创 2021-05-18 14:01:44 · 224 阅读 · 1 评论 -
【Leetcode】3. 无重复字符的最长字串 (Java)
Leetcode 3. 无重复字符的最长字串题目描述解法:滑动窗口思想题目描述解法:滑动窗口思想设置i,j两个指针,分别表示窗口的左边界和右边界。maxSize记录无重复字串的最大长度。// An highlighted blockclass Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(); Set set = new HashSet();原创 2021-04-06 12:10:57 · 47 阅读 · 0 评论 -
【Leetcode】1. 两数之和
题目描述:容易出错的地方题目已经加粗了,第一次使用leetcode没注意到,于是就掉坑里了。如图:更改后的代码如下,网上和书上都看到了更简便的解法。刚刚接触python,我就先这样吧。class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i in ran...原创 2020-04-18 00:19:25 · 100 阅读 · 0 评论