随笔分类 -  Leetcode刷题笔记

摘要:题目要求:给出一个int数组以及一个target数字找出所有在此范围中找出所有组合可以得出target的结果解题思路:1.利用递归,每次根据index更新copy结果集2.定义newtarget= target-candidates[i]3 每更新一次newtarget相对于target就更近了一步... 阅读全文
posted @ 2015-08-24 00:41 haochen_Mark 阅读(167) 评论(0) 推荐(0)
摘要:题目要求:给定一个数组a1,a2,a3,a4,ai...作为一个水桶的两侧,找出两个最大的元素,作为水桶的两边,求最大面积解个人解法:1.两个指针一个从后往前,一个从前往后,相减两边的距离之后乘以j与i的距离,得出结果与之前结果进行比较2.然后如此暴力的解法超时了参考解法:这个方法比较灵巧,比较左右... 阅读全文
posted @ 2015-08-11 04:26 haochen_Mark 阅读(284) 评论(0) 推荐(0)
摘要:题目要求:给出一个给定的数组,找出所有三个数之和等于0的集合,并返回所有的结果集解题思路:解题之前先对数组进行排序1. 确定了一个nums[i]之后通过高位high以及低位low左右close2.注意要判断nums[i]是否等于nums[i+1]如果等于直接跳过3.如果高位和低位相加大于sum值则h... 阅读全文
posted @ 2015-08-10 11:28 haochen_Mark 阅读(133) 评论(0) 推荐(0)
摘要:题目要求:给定一个数组,返回其中的主要元素,就是出现过n/2次以上的那个解法:1.排序2.返回中间元素代码: public int majorityElement(int[] nums) { Arrays.sort(nums); int len = nums.length; r... 阅读全文
posted @ 2015-08-10 09:53 haochen_Mark 阅读(162) 评论(0) 推荐(0)
摘要:题目要求:给定杨辉三角的行数,之后返回这一行的内容。解题思路:1.这一题和上一题类似只是需要返回一行的内容,所以要求在一行上进行操作。2.每次都会现在原有的结果集合上加上一个1,之后再利用set函数从后往前进行修改。3.所以两层循环,外循环从小到大,内循环从大到小。代码如下:public stati... 阅读全文
posted @ 2015-08-10 09:48 haochen_Mark 阅读(90) 评论(0) 推荐(0)
摘要:题目要求:给定帕斯卡三角的层数,生成相应的帕斯卡三角。解题思路:1. 最重要的一点就是每层数字的个数和层数相等,例如:第一层1个,第二层2个,第三层3个,第四层4个2. 其次还有一个规律就是element[i][j]=element[i-1][j-1]+element[i-1][j]3. 每一行的首... 阅读全文
posted @ 2015-08-10 08:22 haochen_Mark 阅读(96) 评论(0) 推荐(0)
摘要:题目要求:将两个排序好的nums1和nums2数组合并成为一个数组,nums1中有足够的空间,有m+n的空间,在nums1中有m个元素,在nums2中有n个元素解题思路:将nums2中的元素归并到nums1中,对于nums1以及nums2从后往前进行遍历,归并到nums1中,while(i>-1&&... 阅读全文
posted @ 2015-08-09 09:47 haochen_Mark 阅读(92) 评论(0) 推荐(0)
摘要:题目要求:去除数组中相重复的的元素,并且返回新数组的长度。(要求不能再申请额外空间,只能在原来数组上进行操作)个人理解:1. 数组定义之后就是定长的不能改变,只能在原来数组上进行操作,不能像链表一样根据指针进行操作2. 与remove element相似,利用数组中后续的元素进行代替,将数组的一部分... 阅读全文
posted @ 2015-08-08 22:32 haochen_Mark 阅读(135) 评论(0) 推荐(0)
摘要:题目要求:去除所有数组内与所给值相等的元素,并且返回新数组的长度。个人解法:1.定义一个int len=nums.length当有nums[i]==value时,len--,但是这个仅仅是返回新数组的长度,并没有做到剔除相等元素参考解法:1.核心在于,i的值从前往后,len的值从后往前2.i在外循环... 阅读全文
posted @ 2015-08-08 04:46 haochen_Mark 阅读(108) 评论(0) 推荐(0)
摘要:题目要求:将数组的位置向右旋转移动k位。个人解法:1.这个题目重点在于需要对边界进行判断,因为k的值有的时候会比n要大,所以要充分理解%的意义2.定义一个copynums可以存储临时变量。3. 在第二个循环中可以利用(i+k)%len的公式准确找到并赋值需要变化的位置。相关代码: public vo... 阅读全文
posted @ 2015-08-08 03:18 haochen_Mark 阅读(156) 评论(0) 推荐(0)
摘要:题目要求:给定一个排序好的int数组,按照间隔输出字符串个人解法:1.设一个临时变量,用来存-》后面的值,2. 遍历一次数组,注意要判断是否到最后一位。代码: public static List summaryRange(int[] nums) { List result = new Arr... 阅读全文
posted @ 2015-08-08 02:20 haochen_Mark 阅读(134) 评论(0) 推荐(0)
摘要:题目内容:给定一个int数组,代表一个非负数不同的位, 在这个数字中加上1之后将结果以int数组的形式返回。个人解法1:1.现将数组转化为int之后加上1之后再变成数组,这样就可能忽略溢出所以无法通过个人解法2:这个解法超级麻烦自己也做不下去了,感觉对于数组操作的部分还不是很熟悉:1.先定义一个Ar... 阅读全文
posted @ 2015-08-08 00:01 haochen_Mark 阅读(104) 评论(0) 推荐(0)
摘要:题目要求:给定一个字符串由不同单词组成,返回其相反顺序,中间可能有多余字符:例如:Given s = "the sky is blue",return "blue is sky the".个人解法:1.暴力,主要是对于两个单词中间存在多个空格的处理。2. 利用栈来存储临时变量。3.缺点,空间利用太大... 阅读全文
posted @ 2015-08-07 03:45 haochen_Mark 阅读(98) 评论(0) 推荐(0)
摘要:Basic Calculator1题目内容:实现一个带有加减以及括号功能的小计算器,其中输入的没用负数,而且输入的内容也全部是合法表达式。个人分析:1.利用stack解题,将得出的临时结果放入stack中2.遇到括号的时候将result放入stack中心得:1. 对于加减可以直接利用符号进行操作,专... 阅读全文
posted @ 2015-08-06 23:46 haochen_Mark 阅读(239) 评论(0) 推荐(0)
摘要:题目:以A-》1, B-》2.。。。。的顺序解码一个字符串序列, 因为存在解码歧义所以例如 12-》L或者存在12-》AB,所以题目是给定一个数字字符串,可以给出多少组合结果:个人分析: 1.在给定字符串中0,1,2的存在会产生歧义,所以要处理好0,1,2的问题 2.如果两个数字的值组合小于... 阅读全文
posted @ 2015-08-06 22:36 haochen_Mark 阅读(184) 评论(0) 推荐(0)