自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 Longest Valid Parentheses - Leetcode

stack的方法。栈内存index遇到‘(’就入栈。遇到‘)’就出站。如果stack为空也就是‘)’比‘(’多,就记录位置。也就是栈底所在的index。如果能成功找到一个pair,也就是栈内至少又一个‘)’。则可以知道local length是多少。i-stk.top, 当 !stk.empty() h或者 i - start +1 d当stk.empty()。时间复杂度:

2015-05-17 07:00:26 379

原创 Populate Next Right Pointer in Each Node

分析:方法1: 如果是递归。可以考虑父节点为一个link list 来链接下面的子节点。如果父节点为空说明子节点也要链接完了。先序遍历,也就是从上到下,从左到右依次链接。时间复杂度是O(n) 空间复杂度是 O(logn)方法2: 如果是迭代。一般的思路是用一个queue来存放每一层的节点,在根据已有的层来安排下一层的节点。要求是constant space 所以不能用queue。其

2015-05-14 00:16:08 569

原创 Binary Tree Maximum Path Sum

求任意节点到任意节点的节点路径和最大。思路: 用递归结果来计算路径和。 用一个全局变量来计算任意路径最大值。 递归求得根节点的左边路径left 或 右边路径right。那么经过当前点能得到的最大路径和为: int rootres = root->val+max(left,0)+max(right,0); 即左边,或右边或两个都有。 与全局变量比较并记录。返回值!根节点+一条路径(左或者

2015-05-10 09:47:02 665

原创 Post Order Traversal - LeetCode

后序遍历:左右中。 思路1: —————–,1 ————–,2 ————,3 ———-4. ————,5 ———-6设置一个指针。(参考binary search tree iterator) 1)一直往左下找,找到最左下的元素(例如,1-4)。过往的元素入栈。 2)每次到了最左下以后就查看是否有右节点。(例如,4有右节点5) i 如果有还要继续(从右节点), 返回第一步

2015-05-10 08:30:06 499

原创 Symmetric Tree

树的遍历: 先序- 中左右。迭代时使用1个stack来存放过往节点。 中序- 左中右。迭代时使用1个stack来存放过往节点。 后续- 左右中。迭代时使用2个stack,s1 push 左节点,右节点,s2 push 根节点。<1> isSymetricTree: 传入左右两个子树。 他们还有他们的孩子都要是symetric的。时间复杂度: 正常的遍历一边树。O(n). 空间复杂度:O

2015-05-10 01:16:31 399

原创 Sum root to leaf number - LeetCode

求所有根节点到叶子节点的总和。一个根节点1-2-3 的值定位123。思路:针对每一层当前元素*10加上下面一层的值。对于每条路径都要计算。所以是一个从上到下的过程,往下找一层就记录累加的值num。不需要回溯。当走到叶子节点跳出。时间复杂度: O(n)   空间复杂度:O(logn)gs id="b5850c58-e601-44d9-8e65-f3cd

2015-05-10 01:11:21 472

原创 Binary Tree Iterator - LeetCode

思路:创建一个指针。一直往左下找,一路上把节点都存起来。如果直到节点为空了。当前栈顶元素就是最小值。对于每次出站的栈顶元素,查看如果有右节点,右节点就要一路往左下找。找到最左下的就是next smallest。Code (C++):class BSTIterator {public: stack stk; TreeNode *p; BSTIte

2015-05-09 10:59:12 385

原创 Unique Binary Search Tree II -LeetCode

分析:1 2 3 (4) 5 6对于每一个数都可以当做根节点。并且满足BST的话,比它小的数都要在左边,比它大的数都要在右边。比如4作为根节点时:左边的数又可以继续拆分。左边1 2 3,每一个数字又可以作为根节点。 比如1作为根节点,NULL为左边,2,3在右边右边同理也可以这样对待。右边5 6,每一个数又可以作为根节点。递归!思路:1)找当前串中的每一个数。

2015-05-09 09:58:31 456

原创 max/min Depth of Binary Tree - LeetCode

Max Depth of Binary Tree左右两边的哪边最大就跟哪边。int maxDepth(TreeNode *root) { if(root == NULL) return 0; return max(maxDepth(root->left),maxDepth(root->right))+1; } Min Depth of B

2015-05-09 02:42:38 460

原创 Symetrict Tree / Same Tree - LeetCode

树的遍历: 先序- 中左右。迭代时使用1个stack来存放过往节点。 中序- 左中右。迭代时使用1个stack来存放过往节点。 后续- 左右中。迭代时使用2个stack,s1 push 左节点,右节点,s2 push 根节点。<1> isSymetricTree: 传入左右两个子树。 他们还有他们的孩子都要是symetric的。时间复杂度: 正常的遍历一边树。O(n). 空间复杂度:O

2015-05-09 02:38:45 568

原创 Multiply Strings - LeetCode

思路: 如果num1有i位,num2有j位。结果最多有(i+j)位, 例如99*99 = 9801 结果中的某位置的数和两个乘数是有关的。 res[3]位 = num1的第0个数 * num2的第3个数 + num1的第1个数*num2的第2个数 + num1的第3个数+ num2的第0个数 + 进位。 注意:这里num1第0个数(最低位)是指i = 0, num[num1.length()

2015-05-08 05:12:24 349

原创 Divide Two Integer - LeetCode

144/5= 28,不能用除号、乘号和取余的符号。分析:Brute Force: 用被除数减去除数,减几次结果就是几。位运算:减法不够快,试探性的乘2来加快速度。28是可以用二进制表示的 28 = 2^4+2^3+2^2所以 144 = 5*(2^4)+5*(2^3)+5*(2^2), 也就是把5依次144-80-40-20 = 4 所以关键是找到80这个位

2015-05-08 02:50:44 529

原创 Pow(x,n) - LeetCode

Pow(x,n) = x^n思路:if(xif(n希望把n当做正数处理。但是if(n == INT_MIN)时,取绝对值会越界,需要单独处理n可以看成是以2为基地的一个正数 n=5 => n=101第0位对应于2^0, 第1位对应于2^1, 第2位对应于2^2,...而n又是x的指数项。所以对应于  x^1, x^2, x^4, x^8...所以x就可以

2015-05-07 10:18:46 407

原创 Reverse Integer - LeetCode

123 -> 321-1234 -> -4321思路:记录符号正负数一样对待记录后面的数字,计入结果, 乘以10,继续累加后面的数字 rolling因为乘以10所以会越界,注意越界的判断!时间复杂度:O(位数)Code (C++):class Solution {public: int reverse(int x) {

2015-05-07 09:16:18 418

原创 Sqrt(x)-LeetCode

题目要求: 对x求开方, m*m = x  思路:Brute Force: 从1开始试验,直到大于x。二分法: 已知结果的范围 [1, x/2+1],可以用binary search。每次取半边,缩小范围。注意选择m的区间:if(m 时间复杂度:BF:O(m) 结果的数量二分法:O(logx),这个在数据比较大的时候还是有明显优势的。毕竟是2的log

2015-05-07 09:03:29 338

原创 StringToInt (atoi)-LeetCode

"1234ab" -> 1234“1234   567” -> 1234"     123" -> 123"+-" -> invalid"+1234" -> 1234"-1234" -> 1234"2147483648" -> 2147483647  正数越界返回INT_MAX,负数越界返回INT_MIN思路:1)考虑前面是一堆空格2)只允许有一个 ‘+’ 或一

2015-05-07 02:56:31 419

原创 4Sum-LeetCode

-8,-2,-1,4,5,5,6,12,16思路:1) 先排序2) 注意排除重复元素。    从后往前 for(int i =nums.size()-1;i > 2; i--)  注意这里至少要剩三个元素。    每一个元素nums[i],找出对应的ThreeSum(nums, i-1, target - nums[i])。 要把当前的元素坐标传入,因为要在此元

2015-05-07 01:18:13 403

原创 OpenCvSharp+VS2012+Windows 64bit 安装配置

1.下载OpenCv2.3.1 安装superpack需要run as administor设置Environment variables中的System variablesPath=.....\opencv\build\x86\vc10\bin\user variablesPath=.....\opencv\build\x86\vc10\bin\ (没有需要自己创建)

2013-01-20 11:36:55 6588

原创 Next ESA SAR Toolbox(1)— 什么是SAR 图像

什么是SAR、INSAR 图像 SAR: 合成孔径雷达 (Synthetic Aperture Radar,)。 是采用搭载在卫星或飞机上的移动雷达,达到大型天线同样精度的雷达系统。 SAR 是一种脉冲雷达技术,具有较高的分辨率,可以获得区域目标的图像。 SAR 具有广泛的应用领域,它有两种模式:机载SAR和星载SAR。 国家卫星名称美国Seasat-1, Sir-A, Sir-B, Sir-C, LACROSSE SAR, LightSAR, Medsat SAR欧洲ERS-1,

2011-03-11 13:16:00 4185

EDA实践指导书——逻辑、仿真,集成电路设计

目录 集成电路设计系统环境 逻辑仿真 逻辑综合 形式化验证 电路仿真与分析 FPGA应用 数字系统设计 主要是学习在linux虚拟机中的应用。EDA的逻辑,仿真,设计思想

2011-03-02

空空如也

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

TA关注的人

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