自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 LeetCode - 81. Search in Rotated Sorted Array II

这道题目是在33题上面去掉了一个条件,就是传进来的目标数组中允许重复。因为这一道题目与33题相比,题目的骨架并没有很大的变化,只是改变了一个条件,所以思路应该是改变的这个条件会造成什么后果,然后需要怎样改动程序来处理这个后果。一开始看这个题目的时候,我是非常迷惑的,感觉好像并没有什么是改变了的,而在第33题中,似乎也并没有什么假设是建立在没有重复这个条件的基础之上。这个条件隐藏的很深,在33题

2016-04-23 18:54:38 648

原创 LeetCode - 33. Search in Rotated Sorted Array

题目的要求是从一个有可能被折断的排序过的数组当中找到target,并且返回target的index。首先注意这道题目中的“有可能”三个字,这就说明题目中给出的数组可能被折断了,也可能没有被折断,所以应该是有以下三种情况:第一中情况是没有被折断的时候,第二种情况和第三种情况分别是可能被折断的情况。这是刷LeetCode以来遇到的第一个标记为Hard的题目,所以开始做的时候还是非常激动

2016-04-22 22:55:19 374

原创 LeetCode - 80. Remove Duplicates from Sorted Array II

方法一:这一种方法是第一个想到的,因为题目中要求删除的是出现两次及其以上的元素,所以在思考的时候想到了使用HashMap来记录数组中每个元素出现的次数,对于出现次数大于2的元素就删除。删除的方法是由26. Remove Duplicates from Sorted Array的思路得来,使用两个指针,碰到重复>=两次的直接跳过,其余的向前移动的前一个指针指定的位置上/* HashMap *

2016-04-12 13:22:04 298

原创 LeetCode - 26. Remove Duplicates from Sorted Array

这个题目在一开始的时候并没有想起来,因为当时思维主要纠结于怎样找到相同的元素,把它们删掉,然后把后面的元素移动上来;看到答案的时候才觉得有些豁然开朗,思想是找不同的元素,而不是找相同的元素,从头开始,每找到一个不同的元素就将它移动到前面来,同时增加index,而且对于array,并没有办法削减它后面的元素,也就是说无法改变它的长度,所以采取的方法是用一个变量随时记录改变后的数组的长度,对于之后的元

2016-04-11 23:06:29 271

原创 LeetCode - 82. Remove Duplicates from Sorted List II

这一道题目主要是链表的操作,一开始因为情况比较复杂,把自己绕晕了,所以没想到这道题目的解法,后来看了答案才觉得自己解起来确实很难解出。这道题目对于链表的操作比较复杂,所要考虑的情况也很多,最大的一个技巧就是dummy head的使用,这样可以比较方便的避免头节点所带来的问题/** * Definition for singly-linked list. * public class Lis

2016-04-11 17:58:49 278

原创 LeetCode - 83. Remove Duplicates from Sorted List

方法一:这种方法是自己想起来的,只用到了一个指针,因此相较于使用两个指针的情况,处理时要来的麻烦些。使用两个指针的方法简便易行,所以在实际中还是比较推荐第二种,但是这种方法仍有些需要注意之处。首先,在while循环中,注意条件pstart != null和pstart.next != null所带来的不同,在前者的情况下,最后一个元素是访问不到的,而在后者的情况下,最后一个元素仍然可以得到访问

2016-04-10 23:15:49 240

原创 LeetCode - 18. 4Sum

这一道题目的思路与3Sum差不多,同样是对数组进行排序之后采用两个pointer一前一后找结果。因为题目要求的是四个数字的和,所以不同于3Sum的是,外层循环要有两个,在ac了3Sum之后,这一道题目写起来不难,但是在leetcode上面我还是提交了3次才accept,原因是在这一个题目还有一个点需要注意,容易犯错:题目要求的是不准有重复,所以我们在写程序的时候要加入避免重复的机制,在第二层循环里

2016-04-08 16:35:01 299

原创 LeetCode - 16. 3Sum Closest

方法一:这一道题目自然也是有Brute Froce的解法,一开始思考的方法是通过三重循环和一个HashMap,分别记下来每种组合所对应的sum的大小,然后再从中找到与target最为接近的数返回。这种方法的时间复杂度很高,为O(n^3),再加上HashMap和比较大小所用的时间,在leetcode oj上面几乎肯定要超时,所以详细的代码就不写了方法二:思考前面做过的3Sum题目,在这一

2016-04-08 13:21:14 564

原创 LeetCode - 15. 3Sum

方法一:这一道题目直接的想法就是Brute Force,通过三重循环来寻找目标,但是这样的时间复杂度非常高,同时又需要检测来避免重复,所以这种方法虽然能够得到正确的答案,但是在leetcode上会因为time limit exceeded而无法通过public class Solution { public List> threeSum(int[] nums) {

2016-04-07 22:58:02 2768

原创 LeetCode - 1. Two Sum

class Solution {public: vector twoSum(vector& nums, int target) { for(vector::size_type i = 0; i != nums.size(); ++i){ for(vector::size_type j = i + 1; j != nums.size(); ++j){

2016-04-05 19:18:34 955

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除