自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 1006. 编辑距离

对于两个只含有小写英文字母(’a’-‘z’)的单词word1和word2,你可以对word1进行以下3种操作:1) 插入一个字母; 2) 删除一个字母; 3) 替换一个字母.请计算将word1变换成word2的最少操作数. word1和word2的长度均不大于1000.例1:word1 = “sunny”, word2 = “snowy”,返回值为3. 例2:word1 = “abc”,

2017-06-29 17:16:32 186

原创 1005. 最大和

从数列A[0], A[1], A[2], …, A[N-1]中选若干个数,要求相邻的数不能都选,也就是说如果选了A[i], 就不能选A[i-1]和A[i+1]. 求能选出的最大和.1 <= N <= 100000, 1 <= A[i] <= 1000例1:A = {2, 5, 2},答案为5.例2:A = {2, 5, 4},答案为6.思路:动态规划class Solution {public:

2017-06-29 17:14:40 238

原创 1004. 无环图

在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(Directed Acyclic Graph,DAG). 对于一个n个节点的有向图(节点编号从0到n-1),请判断其是否为有向无环图.图的节点数和边数均不多于100000.请为下面的Solution类实现解决上述问题的isDAG函数,函数参数中n为图的节点数,edges是边集,edges[i]表示第i条边从ed

2017-06-29 17:10:42 224

原创 1003. 相连的1

对于一个01矩阵A,求其中有多少片连成一片的1. 每个1可以和上下左右的1相连.思路:泛洪(DFS)class Solution {public: void flood(vector<vector<char>>& A, int i, int j, int m, int n) { if (i < m && i >= 0 && j < n && j >= 0 && A[i][j

2017-06-29 17:06:31 150

原创 1002. 等价二叉树

1002. 等价二叉树Description两个二叉树结构相同,且对应结点的值相同,我们称这两个二叉树等价./** Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : va

2017-06-29 16:55:55 199

原创 soj

1.一个由0和1组成的矩阵,求所有1到最近的0的距离,上下左右的距离为1,返回距离矩阵 2.给定一个序列,每次必须选择A[i]或者A[i+1]中的一个,求最小和 3.最大公共子串

2017-06-29 13:14:52 264

原创 吝啬SAT是NP-完全问题

《算法概论》8.3吝啬SAT问题是这样的:给定一组子句 (每个子句都是其中文字的析取) 和整数 k,求一个最多有 k 个变量为 true 的满足赋值——如果该赋值存在。证明吝啬SAT是NP-完全问题。证明:已知SAT问题是NPC问题。要证明吝啬SAT问题是NPC问题,只须证明,一个SAT问题可以在多项式时间归约到吝啬SAT问题。假设SAT问题有n个变量,令吝啬SAT问题中的k为SAT问题中的n,即在

2017-06-26 11:29:53 527

原创 53. Maximum Subarray

53. Maximum SubarrayKadane’s Algorithmclass Solution {public: //For example, given the array [-2,1,-3,4,-1,2,1,-5,4], //the contiguous subarray [4,-1,2,1] has the largest sum = 6 int maxSu

2017-06-16 16:25:35 142

原创 121. Best Time to Buy and Sell Stock

121. Best Time to Buy and Sell Stock思路: Kadane’s Algorithmcode:class Solution {public: //[7, 1, 5, 3, 6, 4] //[5, 4, 3, 2] int maxProfit(vector<int>& prices) { if (prices.size()

2017-06-16 12:05:06 136

原创 1009. Mersenne Composite N

1009. Mersenne Composite NConstraintsTime Limit: 1 secs, Memory Limit: 32 MBDescriptionOne of the world-wide cooperative computing tasks is the “Grand Internet Mersenne Prime Search” – GIMPS – striving

2017-06-11 21:47:52 180

原创 70. Climbing Stairs

70. Climbing Stairs问题: 每次上楼梯可以踏一阶梯或者两阶, 问有多少中上楼梯的方式.思路: 分析一下, 其实是个fabonacci数列问题. 上至第n阶的时候可以是踏一阶,或者踏两阶, 即f(n) = f(n-1)+f(n-2)code:class Solution {public: int climbStairs(int n) { if (n <

2017-06-11 21:34:41 156

原创 347. Top K Frequent Elements

347. Top K Frequent Elements思路: 先建立hash表统计出现的次数. 然后使用桶排序. 时间复杂度O(n)code:class Solution {public: vector<int> topKFrequent(vector<int>& nums, int k) { map<int, int> hash; for (int

2017-05-27 17:28:48 212

原创 42. Trapping Rain Water

42. Trapping Rain Water问题: 算储水量 思路: 源于http://blog.csdn.net/linhuanmars/article/details/20888505 储水的思路很简单, 要找到左右两个岸. 使用左右两个指针, 从左右同时开始向中间遍历, 直到终止条件. 比较左岸和右岸, 移动低的指针, 同时累计储水量.code:class Solution {

2017-05-26 17:37:50 136

原创 102. Binary Tree Level Order Traversal

102. Binary Tree Level Order Traversal问题: 层序遍历BTree, 逐层.思路: 和普通的层序相比, 需要对每层截断一下. 逐层入队, 使用queue的size, 逐层出队,再将下一层入队.code:/** * Definition for a binary tree node. * struct TreeNode { * int val

2017-05-26 15:31:45 173

原创 106. Construct Binary Tree from Inorder and Postorder Traversal

106. Construct Binary Tree from Inorder and Postorder Traversal思路: recursioncode:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode

2017-05-25 18:04:47 158

原创 105. Construct Binary Tree from Preorder and Inorder Traversal

105. Construct Binary Tree from Preorder and Inorder Traversal思路: recursioncode:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *

2017-05-25 18:03:40 158

原创 563. Binary Tree Tilt

563. Binary Tree Tilt问题: 求BTree的Tilt. 节点的tilt定义为左右子树的数值和的绝对差值. 树的Tilt为所有节点的tilt之和.思路: 先得到树的tilt需要对节点求tilt, 对节点求tilt需要求出左右子树之和. 需要分左右子树并且从下向上遍历求和,最后到跟节点. 分为两个过程: 1, 对左右子树求和; 2, 求节点的tilt之和. 后序遍历比

2017-05-25 15:29:29 149

原创 145. Binary Tree Postorder Traversal

145. Binary Tree Postorder Traversal问题: 后序遍历二叉树思路: 1. 和前边的preorder,inorder不同,直接借助堆栈实现iterative算法似乎有些麻烦。所以先实现了递归(recursion)版本。 2. preorder的顺序是:root->left->right inorder的顺序是:left->root->right

2017-05-24 17:26:01 151

原创 144. Binary Tree Preorder Traversal

144. Binary Tree Preorder Traversal问题: 先序遍历二叉树思路: 先根节点,左子树,然后右子树。使用堆栈存储code:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *ri

2017-05-15 23:21:02 128

原创 94. Binary Tree Inorder Traversal

94. Binary Tree Inorder Traversal问题: 中序遍历二叉树思路: 先左子树,根节点,然后右子树。使用堆栈存储code:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *righ

2017-05-15 23:13:32 135

原创 515. Find Largest Value in Each Tree Row

515. Find Largest Value in Each Tree Row问题: 找出BTree每一层最大的数思路: 使用队列,从右向左逐层遍历code:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *

2017-05-01 17:03:02 195

原创 442. Find All Duplicates in an Array

442. Find All Duplicates in an Arraycode:#include <iostream>#include <vector>#include <cmath>using namespace std;ostream & operator<<(ostream &out, vector<int> &A) { for (vector<int>::iterator i

2017-03-21 23:56:38 145

原创 344. Reverse String

344. Reverse Stringcode:char* reverseString(char* s) {char *p1, *p2;if (!s || !*s) return s;for (p1 = s, p2 = s+strlen(s)-1; p1 < p2; p1++, p2--) { *p1 ^= *p2; *p2 ^= *p1; *p1 ^= *p2

2017-03-21 00:09:00 132

原创 23. Merge k Sorted Lists

leetcode 21. Merge Two Sorted Lists思路:divide and conquer,分治 code:#include <iostream>#include <vector>#include <string>#include <queue>using namespace std;/** * Definition for singly-linked list.

2017-03-05 21:16:42 137

原创 21. Merge Two Sorted Lists

leetcode 21. Merge Two Sorted Lists思路:递归 code:#include <iostream>#include <vector>#include <string>#include <queue>using namespace std;/** * Definition for singly-linked list. * struct ListNode

2017-03-05 21:11:49 135

原创 513. Find Bottom Left Tree Value

leetcode 513. Find Bottom Left Tree Value.cpp思路:使用队列,从右向左逐层遍历code:// Definition for a binary tree node.struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val

2017-02-26 15:17:18 129

[中文&英文]工作流管理:模型、方法和系统

工作流管理:模型、方法和系统,Workflow Management: Models, Methods, and Systems

2015-04-06

[计算机网络:自顶向下方法(原书第6版)].(库罗斯)

[计算机网络:自顶向下方法(原书第4版)].(库罗斯).陈鸣等.扫描版

2014-10-14

空空如也

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

TA关注的人

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