摘要: 问题: 给定一个已排序的数组,该数组以某一个元素作为支点做了旋转,在改旋转后数组中搜索值。 已排序数组的搜索,自然会想到二分搜索。将旋转到后面的部分用负数表示下标,便可以正常使用二分搜索。 阅读全文
posted @ 2015-12-26 22:05 TonyYPZhang 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个已排序数组和一个整数,若整数已在数组中则返回在数组中的下标,否则返回应当插入的位置。 对一个已排序数组进行搜索,很自然地会想到二分搜索(Binary Search),毕竟是经典场景。这道题也确实是二分搜索的一个简单应用。 之所以记录这道题目,是感觉二分搜索和之前做的 双指针法 two pointers ,或者是滑动窗口算法(sliding window) 有些相似。 阅读全文
posted @ 2015-12-26 11:44 TonyYPZhang 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个矩阵,当矩阵一个元素为 0 ,将该元素的当前行,当前列都设为 0 。 我的方案满足补充内容的第二点,使用 O(m + n) 额外空间。 阅读全文
posted @ 2015-12-26 10:58 TonyYPZhang 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 问题:在给定的已排序的二维矩阵中,判断是否包含某个整数。 思路:看到二维数组,首先想到的是二维数组和 一维数组可以直接转换,arr[i][j] 等于 arr[i*col + j]。而在一个已排序的一维数组中搜索一个元素,可以采用分治(Divide and Conquer)思想,更具体些就是二分搜索(Binary Search) 算法。 阅读全文
posted @ 2015-12-26 09:34 TonyYPZhang 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个数组和一个整数 n ,求数组中的三个元素,他们的和离 n 最近。 这道题和 3Sum 很相似,解题思路也很相似,先排序,然后采用双指针法依次比较。 阅读全文
posted @ 2015-12-26 01:45 TonyYPZhang 阅读(1283) 评论(0) 推荐(0) 编辑