摘要: 根据二叉搜索树的性质,根节点最小,那么后序遍历的最后一个元素一定是根节点也是最小的,比这个结点小的就是左子树,大的就是右子树,然后递归判断,如果还有元素没有被遍历到那么这个序列就不是正确的后序遍历 阅读全文
posted @ 2017-10-13 18:36 Deaglepc 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 每个人有不同的方法,我用四个变量标记边界 class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int l,r,t,b; l = 0, r = matrix[0 阅读全文
posted @ 2017-10-13 18:31 Deaglepc 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 先序遍历,交换子树即可,注意空节点的情况,这种简单题考的就是细节... /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), 阅读全文
posted @ 2017-10-13 18:29 Deaglepc 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 从小的开始作为头结点,然后比较选择较小的进行链接 需要注意头结点确定的时候就要保存下来,因为后面会一直变化往后链接新元素 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) 阅读全文
posted @ 2017-10-13 18:27 Deaglepc 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 这个题貌似经常听说? 两个指针,指针1指向头,指针2指向头+k的位置,指针2到达尾部的时候指针1就是答案 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };* 阅读全文
posted @ 2017-10-13 18:25 Deaglepc 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 注意负数转换成补码计算 我的方法比较奇葩,把负数的补码用正数表示,结果加1就是答案,因为负数的符号位是1 阅读全文
posted @ 2017-10-13 18:02 Deaglepc 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 看到第n个矩形相对与第n-1个是多了一行1*2的小矩形,这个新的小矩形能如何贡献价值? 第一种情况,它直接被一个1*2的小矩形覆盖,剩余部分如何填充就是没有加新的小矩形之前的也就是和第n-1个矩形产生的结果相同 第二种情况,它的每个1*1的小矩形分别放一个1*2矩形的一半,这样就要浪费原来的一行矩形 阅读全文
posted @ 2017-10-13 17:59 Deaglepc 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 找规律发现答案是2n-1 其实对于第n个台阶,相对于前一个状态多了一个台阶,那么我们可以把第n-1个台阶看作一种走法,即走n-1个台阶或者走1个台阶,那么就是先走1个再走n-1个或者先走n-1个再走1个台阶即可到达 那么可以得到 dp[n] = dp[n - 1] * 2; dp[1] = 1; c 阅读全文
posted @ 2017-10-13 13:53 Deaglepc 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 二分,注意边界 其实就是数组有两部分,都是升序的,左边部分都比右边部分大,暂且称左序列和右序列 所以当 left 指向的元素比 mid 值小,说明是指向了左序列,左指针右移,left=mid 当 right 指向的元素比 mid 的大, 说明是指向了右序列,右指针左移, right = mid 这样 阅读全文
posted @ 2017-10-13 11:48 Deaglepc 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 这题也很容易想到:一个栈出栈到另一个栈,然后另一个栈再出栈的顺序将是队列的顺序(原序列逆序的逆序是正序) 思路:两个栈,stack1,stack2; stack1负责存放元素,stack2负责暂时存放stack1的一次出栈,为了改变stack1里面元素的存放顺序 入栈操作:1.先将stack1依次出 阅读全文
posted @ 2017-10-13 11:32 Deaglepc 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 水题,可以立刻想到的方法是 1.从头到尾遍历,依次入栈,然后出栈。时间复杂度和空间复杂度都是O(n) 2.先反转链表,然后遍历。时间复杂度O(n),空间O(1) 3.先放到数组,再倒序存一遍,和方法1思想相同,也是最蠢的方法。 其他方法自己想吧... 最蠢的我贴出最蠢的代码- - /** * str 阅读全文
posted @ 2017-10-13 10:54 Deaglepc 阅读(318) 评论(0) 推荐(0) 编辑
摘要: windows给我们提供了一个对话框控件HotKey非常好用,在设置热键的时候用起来很爽,但是一直百度就是没找到在win32下怎样通过消息获取这个控件里面的内容,找到的都是用MFC封装好的控件类来操作的,终于在MSDN找到了答案… 翻译过来就是要给控件发送这个消息 HKM_GETHOTKEY 头文件 阅读全文
posted @ 2017-10-13 00:19 Deaglepc 阅读(1469) 评论(0) 推荐(0) 编辑