自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [leetcode题后感]Pascal‘s Triangle I II

典型的数学题 题目难点在于发现数学规律 仔细观察可以总结出来数学规律  设要求第I行第j列元素 那么这个元素应该等于第i-1行的第j列和j-1列的元素的和 基于以上条件即可循环、递归完成题目I 题目二让你直接返回第i行的所以元素 通常将直接按照I的思路胜场全部的三角形返回最后一行即可 但是题目要求O(n)空间 那么就要考虑对题目一进行优化 首先想到的是数学公式法寻找一个C(i,j

2015-05-21 10:25:33 326

原创 [leetcode题后感]Jump Game

本题采用贪心算法 贪心算法的关键在于选取一个正确的贪心策略  显然 每一都选择蹦到最远的位置是一个错误的贪心策略 比如 4 2 2 0 1 如果选择最远的则上来蹦到0的位置结果返回false 显然是错误的 那么选择一个什么样的贪心策略才是合适的 这里想到了dijk算法的特点 没新增加一个节点都会重新计算一次最短路径 在本题中那就是每新来一个元素重新计算一下新增加这个元素之后当前集合所能跳

2015-05-20 19:53:12 211

原创 [leetcode题后感]happy number

这个题目很简单难点有两个 第一个是计算happy值 第二个是判断所有产生的happy是否成一个环 第一个很简单 依次计算各位十位百位。。。的平方值然后相加即可 第二个用hashmap 讲每次产生的happy值存入hashmap 若以存在 则返回false

2015-05-14 11:17:16 245

原创 [leetcode题后感]Minimum Size Subarray Sum

类似于2sum 用两个指针指向一个subarray 当前subarray的和大于等于目标值时 记录一下当前子序列的长度 若他是最小值则更新最小值 然后讲第一个指针++  当子序列的和小于目标值的时候 第二个指针++ 依次循环以上过程 直到第二指针走到队尾 或者 当第一个指针大于第二个指针的时候(即数组中出现了一个数字大于目标值) 此时直接返回1即可 要注意集中特殊测试用例 一种是第一个数

2015-05-14 10:41:06 275

原创 [leetcode题后感]sort color

这个题很简单 典型的计数排序 即已知待排序的数的值域是已知的 那么可以用一个数组存储每个数字出现的次数 然后在按照出现的次数重新输出 本题的过程中遇到了一个问题 那就是数组的初始化 要注意new方法申请数组的时候 只有当加()之后new才会自动赋初值0 否则不会负初值 即int *a=new int[3](); 本题还有第二个做法,因为题目的标签显示了two pointer 因此考

2015-05-08 21:40:26 268

原创 [leetcode题后感]unique path I、 II

题目很好理解 类似青蛙跳台阶问题 很容易找出来递推公式f(m,n) = f(m-1,n) + f(m,n-1) 对应题目二的话 递推公式稍作更改  当点 m-1,n 等于1(即阻塞的时候)f(m,n) = f(m,n-1) 即可 只需要根据给的二维数组就行一下判断就可以作为递推公式的条件 但是如果单纯的用递归 由于向两个方向分别递归,递归层数会非常多 因此考虑把重复的路径存起来,当重复计算

2015-05-08 14:37:08 314

原创 [leetcode题后感] Remove Duplicates from Sorted Array I、 II

这个题感觉很简单 I的算法就是遇到重复的不计数 O(n)时间遍历返回计数就可以 II的算法跟I相似 加一个标志变量 当这个数字出现次数小于2的时候计数 并将标志变量加1  II中需要注意 不仅仅要你返回结果的个数 还要将传引用调用的nums也返回为正确结果 即去掉重复超过两次的元素 那么很简单 在判断出现次数是否小于2的时候顺手删掉超过2的元素即可 但是要注意 vector的删除 用fo

2015-05-05 22:30:05 288

原创 [leetcode题后感]search insert position

很简单的二分查找 找到就返回下标即可 当找不到时候需要最一番处理 要看当left>right时最后一次是对left进行了+操作还是对right进行了-操作 解决这个问题很简单,加个标志变量即可 最后进行判断 若是对left进行了操作返回left即可 若是对right进行了操作则需要返回right+1 这点需要注意

2015-04-23 21:53:36 343

原创 [leetcode题后感]search for a range

题目要求 算法复杂度lgn 还是数组的题 不用看就知道是二分查找的题目 二分查找一个数是否存在很熟练 但是对于寻找位置一开始还是思考了一番 这里想到了一个比较简单的方法  因为当你确定存在这个数时要分别对mid的前面的和后面的数组元素再分别二分,所以我分开两部分进行二分 若寻找最左侧的坐标,当mid=target时候就再去找mid左侧是否还存在target 若不存在,则此mid为最左侧左边

2015-04-23 21:49:29 211

原创 [leetcode题后感]first missing positive

这个题有点坑 题目就没读懂啥意思 百度了各路大神之后才知道 是求第一个没出现过的正整数 题目很简单 但是限制条件很苛刻 要求O(n)时间和O(1)的空间 所以难度增加 思路大概如下 既然是n个数字的数组,那么也就是求1-n中数字第一个没再数组中出现的就是所求的 既然不让用多余的空间,那么久考虑在原数组上做文章,而数组下标的特性,正好是0-n-1的n个数字 所以很自然想到 讲0 - n-1

2015-04-20 21:01:27 327

原创 [leetcode题后感]combination sum i,ii

两道题思路基本一样 区别在意一个可以重复使用数字 一个不可以重复使用 解题都用到了回溯 既然用回溯就要去判断何时回溯 还要判断整个递归的终止条件 题i的想法 因为可以重复使用 我从最大元素开始寻找一个组合 类似于贪心的想法 每一次先选最大的元素加入结果集合 然后递归再加入最大的元素 当当前结果集合超过了target值时回溯选择次大的元素。 每一次选择了最大的元素得到返回之后再讲最大的元素弹

2015-04-20 11:27:43 331

原创 [leetcode题后感]Divide Two Integers

最开始时候开到这个题 不让用除法乘法和模运算 想到的就只剩下了位运算 位运算也就是左移乘2 右移除2 乘二除二 顺理成章的想到了二分查找 两个int的除法返回int 要摒弃传统除法的计算想法  a*b=c 转换为加法也就是b个a相加等于c 而整数除法中 b=c/a 则应该是b个a相加小于c 但是b+1个a相加大于c 由这个思路去找符合条件的b 首先想到的就是依次+1枚举 但是这样的做法就

2015-04-19 21:17:16 287

原创 [leetcode题后感]container with most water

此题tag 为 two pointer  而two pointer的经典应用是2sum ksum类似的题目 本题一开始并没有很好的思路 因为首先题目标书也不是很明确,应该注意两条垂直的直线之间的water量不用考虑其他直线的情况, 即 water的量就等于两条直线与x轴所构成的容器的容量 本题比较难想,不知道如何转换为常用的算法 经搜索发现了最大container的两条性质 即最大con

2015-04-19 16:46:09 236

空空如也

空空如也

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

TA关注的人

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