11 2018 档案
摘要:这道题让我和难受,我的代码丑陋不说,还没有通过。先看一下题目描述: 从题目描述看确实很简单,先看一下我的代码: 我的代码有一种情况过不去,就是" "有数个空格组成的字符串,再来看一个正确的代码: 就一行,但是包括了所有情况。其实可以看出和我最后一行的return只多了一个trim方法,而我的第二个i
阅读全文
摘要:这道题是一道我认为非常好的题,它让我初步认识了动态规划思想。先看一下题目描述: 无序的数组中找到一个具有最大和的连续子数组,返回值是和,这道题有许多种解法,但是我思考了20分钟也没有写出来,这篇文章重点说一下用动态规划来解这道题,分治思想另篇说起,先上代码: 非常唯美的代码。简洁明了,这里用到了dp
阅读全文
摘要:这道题我认为并不是特别的好,非常难以理解提议,leetcode很多人也抗议这道题的题意表述,而且我也想不出来解决的方法。先看一下描述: 我来解释一下,其实就是解释上一项的意思。第一项是1,第二项是描述第一项“1个1”,所以是11,第三项描述第二项“2个1”,所以是21,以此类推。上代码:
阅读全文
摘要:这是我第一道通过自己独立思考通过的代码,虽然题目简单,但是还是很激动!先看一下题目描述: 题目描述的很清楚,一定要仔细读题,直接上代码: 但是它只击败了36.8%的提交代码,可以看出虽然通过,但是代码不是很友好,肯定有更好的方法。果然找到了运用二分查找解决:
阅读全文
摘要:想先看一下题目描述: 这个题很简单,但是我第一次做题的时候没有理解题意。needle里的元素要在haystack里全部体现。并且还需要注意数组越界问题。 但是我不太理解为什么i < haystack.length() - len + 1,这样可以防止数组越界,但是原因还没有搞清楚。
阅读全文
摘要:先看一下题目描述: d 同样借助双指针。
阅读全文
摘要:先看一下题目描述: 注意这道题返回的是新数组长度,输出的是数组。这道算法需要两个指针(快指针和满指针)来实现 j从1索引开始遍历,遇到相同的则j++(跳过)。遇到不同的,将nums[j]的值赋予nums[i]
阅读全文
摘要:先看一下题目描述: 这是一道查看链表知识的算法题,要求非常简单,合并两个有序链表,但是这道题我理解起来非常吃力,花了很久也不能说理解透了。可能对链表的理解还是不够深刻。这道题有两个解法,递归解法和非递归解法。其中递归解法思路非常犀利,如果对递归思想没吃透的话很难想到。先看非递归版本的: 注意这里用到
阅读全文
摘要:先看一下题目描述: 通过题目描述可以清楚的明白题目规则,输出true或者false。这道题需要用借用栈来实现,不说理解直接放代码 还有一种进阶版,代码更少,但是思路更犀利,不太容易想到,同样借助栈 其实两段代码思路一模一样,非常巧妙
阅读全文
摘要:先看一下题目描述: 先默认strs[0]是最长公共前缀prefix,然后通过indexOf判断是prefix是否从strs[1]0索引开始,如果不是,则通过substring函数减少一位,直到从0索引开始。时间复杂度为O(N)。
阅读全文
摘要:先来看一下题目描述: 这道题需要用HashMap存取。罗马数字作为键,数字作为值,然后从右往左进行遍历判断
阅读全文
摘要:先看一下题目描述: 我们应该都知道回文数是什么意思了,应该想到数组来存储数字,但是怎样进行判断呢。首先负数和0直接返回false, 再对数组中的第一位和最后一位比较,第二位和倒数第二位比较,因为回文数是高度对称的。 s d s
阅读全文
摘要:我们先看一下题目描述: 就是将数字进行反转,可以用数学方法将其解答。 貌似还有用StringBuffer解决,但是本人能力有限看不太懂。这种方法是用时最少的,而且最好理解。所以吸收这种方法就可以了
阅读全文
摘要:这是leetcode的第一道题,想必放在第一题也是非常经典的了。我是一个小白,在这个博客里分享算法笔记以及面试问题汇总。 先看题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个
阅读全文

浙公网安备 33010602011771号