摘要: 问题:给定一个列表和整数 x,将列表中所有小于 x 的元素移到大于或等于 x 的元素前面。要求,移动后两部分的内部的元素相对位置和原来的保存一致。 第二个思路是用数组存储新的列表顺序,然后在数组中建立 元素间的指针关系。这个思路比较简单,也提交通过了。 阅读全文
posted @ 2015-12-23 00:44 TonyYPZhang 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 问题:给定列表 和一个整数 k ,旋转列表最后 k 个元素至列表最前面。 关键是找到最后元素 lastOne 和 旋转后列表新的最后元素 newLastOne 阅读全文
posted @ 2015-12-23 00:34 TonyYPZhang 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 问题:给定 n 个元素的数组 a1,a2..an,他们对应坐标中的 n 条线,第 i 条线的两端分别为坐标 (i, 0) 和 (i, ai)。求两根线,这两个线和 x 轴形成的容器能装最多的水。 这是一道直方图相关的题目,同样是直方图的题目还有:Trapping Rain Water 和 Largest Rectangle in Histogram。他们的解法有类似的地方,就是借助于递增元素以及对应的下标来计算。 阅读全文
posted @ 2015-12-23 00:28 TonyYPZhang 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个单向列表结构,判断它是不是回文的。 补充:是否可以在 O(n) 时间,O(1) 额外空间下完成? 解题思路: 对于数组,判断是否是回文很好办,只需要用两个指针,从两端往中间扫一下就可以判定。 对于单向列表,首先想到的是,将列表复制一份到数组中,然后用上面的方法就可以了,O(n) 时间, O(n)额外空间。 如果是 O(1)额外空间,就没有思路,在网上找了下,找到一个解决方案。值得注意的是,这个方案执行过程中,会改变原来列表的结构。 阅读全文
posted @ 2015-12-23 00:04 TonyYPZhang 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 问题: 给定一个数组,每个元素表示海报高度,每个元素宽度均为 1 ,求这个数组能装多少雨水。 虽然这道题属于 two pointers 类型,不过我是用借助队列来解的。 思路还是蛮简单的。 阅读全文
posted @ 2015-12-21 22:26 TonyYPZhang 阅读(2288) 评论(0) 推荐(0) 编辑
摘要: 问题: 给定字符串 S 和 T ,求 S 中包含所有 T 中字符的最小子字符串。 值得一提的是,“包含所有 T 中的字符”,是要包含 T 中所有字符以及对应的个数。在 T 中重复出现的字符,在最后答案中也需要包含相同个数的重复字符。第一次解没有理解到这个点,提出结果错误,意识到这个点后,修正并提交成功。 解题思路采用的也是 滑动窗口算法(Slide Window Algorithm),LeetCode 把这样的算法归类到 双指针(Two Pointers)类型,算法思路和前面的 Longest Substring Without Repeating Characters 以及 Minimum Size Subarray Sum 相似。 阅读全文
posted @ 2015-12-20 22:54 TonyYPZhang 阅读(1162) 评论(0) 推荐(0) 编辑
摘要: 问题:找到字符串中最长的无重复字符的子字符串。 这题是求最长连续子字符串,可以使用 滑动窗口算法(Slide Window Algorithm)求解,和 Minimum Size Subarray Sum 相似。 阅读全文
posted @ 2015-12-20 16:42 TonyYPZhang 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: Given an arraynumscontainingn+ 1 integers where each integer is between 1 andn(inclusive), prove that at least one duplicate number must exist. Assume... 阅读全文
posted @ 2015-12-20 15:59 TonyYPZhang 阅读(974) 评论(0) 推荐(0) 编辑
摘要: Given an arraySofnintegers, are there elementsa,b,cinSsuch thata+b+c= 0? Find all unique triplets in the array which gives the sum of zero.Note:Elemen... 阅读全文
posted @ 2015-12-19 19:21 TonyYPZhang 阅读(4023) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个正整数数组和一个正整数 s ,求连续子数组的和大于等于 s 的最小长度。 解题思路:采用滑动窗口算法(Slide Window Algorithm)。 设下标 l 和 r, 把左开右闭 [l, r) 想象成一个窗口。 阅读全文
posted @ 2015-12-19 15:50 TonyYPZhang 阅读(791) 评论(0) 推荐(0) 编辑