摘要:时间限制:10000ms 单点时限:1000ms 内存限制:256MB 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。 这一天,他们遇到了一本词典
阅读全文
摘要://实现大整数相加 //还得考虑符号位,一个比另一个短 #include<iostream> #include <string> #include <cstring> using namespace std; #define maxlen 2001 int a[maxlen]; int b[maxl
阅读全文
摘要://石头 2016 / 3 / 28 21:38 : 32 #include #include using namespace std; class Solution { public: void printMatrix(vector > &matrix) { int count = 0; if (matrix.empty()) ...
阅读全文
摘要://20150328晚,不使用乘号运算符实现两个数相乘 #include #include #pragma warning(disable:4996) //using namespace std; int main() { int m, n, t; long long ll, absn, absm; while (scanf("%d %d", &m, &n) !...
阅读全文
摘要:#include #include #include #include using namespace std; struct TreeNode{ char val; int level; int height; struct TreeNode* left; struct TreeNode* right; TreeNode(char x,int...
阅读全文
摘要:输入:每行3个数字,第一个数字表示左子数节点个数,第二个数字表示右子树结点个数,第3个数字表示当前节点值。 输入就是按照先序遍历顺序提供的。 例如: 1 2 4 0 0 2 1 0 3 0 0 1对应的二叉树就是,先序遍历为4-2-3-1,中序遍历为2-4-1-3。 我们先来按照要求建树,直接就是先
阅读全文
摘要:Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.
阅读全文
摘要:241. Different Ways to Add Parentheses https://leetcode.com/problems/different-ways-to-add-parentheses/ 思路就是:首先找到以运算符为根节点,分别计算左子串和右子串的所有结果的集合,然后依次进行组合
阅读全文
摘要:题目链接 http://hihocoder.com/contest/ntest2016spring1/problem/1 这个题目有几个算法考点: (1)对于一个LED数码管(由7个发光二极管封装在一起,对应的二极管编号见所给链接),给你一串整数,每个数字表示对应的二极管亮,其他二极管明暗未知,由该
阅读全文
摘要:https://leetcode.com/problems/unique-paths/ 这道题,不利用动态规划基本上规模变大会运行超时,下面自己写得这段代码,直接暴力破解,只能应付小规模的情形,当23*12时就超时了: 利用动态规划来做,储存一个二维数组:vector<vector<int>> dp
阅读全文
摘要:算法真的是,如果不能捅破那道窗户纸,会感觉苦苦地就一直陷在瓶颈里,无法自拔,只有捅破了那道窗户纸才会发现,其实原理那样简单,遗憾的是,很多时候靠自己苦思冥想可能永远都无法找到那层窗户纸! 一道简单的DP(n)、分治算法题(nlogn) 53. Maximum Subarray http://www.
阅读全文
摘要: 287. Find the Duplicate Number hard http://www.cnblogs.com/grandyang/p/4843654.html 51. N-Queens http://blog.csdn.net/linhuanmars/article/detai
阅读全文
摘要:https://leetcode.com/submissions/detail/56095603/ 这是一道不错的DP题!自己想了好久没有清晰的思路,参看大神博客!http://siukwan.sinaapp.com/?p=1013 我自己的感悟: 对于树的的前序遍历(根-左-右);编写代码时,有效
阅读全文
摘要:给定一个数组,将奇数放到前面,偶数放到后面,各自排好序 (2016年3月12日晚上,CVTE笔试编程第一道题): 思路很简单: (1)先将数组中的奇数和偶数分开(利用两个指针遍历一遍即可,同时统计好数组中奇数的个数); (2)然后分别进行快速排序。
阅读全文
摘要:https://leetcode.com/problems/first-missing-positive/ 我原以为数组中不会有重复的数字,所以利用min、max分别记录给定数组中出现的最小正整数和最大正整数{可以求出这之间的所有数值之和sum2=(min+max)*(max-min+1)/2},并
阅读全文
摘要:题目链接:https://leetcode.com/submissions/detail/55876321/ 自己的做法,30个测试用例通过了29例,终究还是有一个系列类型的是无法通过的,因为自己妄想在permutation的代码上,通过排序来进行。然而,每一次同第一个元素交换位置之后,进入了递归,
阅读全文
摘要:https://leetcode.com/problems/permutations/ 求数列的所有排列组合。思路很清晰,将后面每一个元素依次同第一个元素交换,然后递归求接下来的(n-1)个元素的全排列。 经过昨天的两道回溯题,现在对于回溯算法已经很上手了。直接貼代码: class Solution
阅读全文
摘要:char ** strsplit(char *line, char delimeter, int *count, int limit)//line是传入字符串delimeter是用来进行分割的字符count是一个用来计数的变量,传入传出,函数执行完之后,表示将line分成的字符串个数limit用来限
阅读全文
摘要:https://leetcode.com/problems/combination-sum-ii/ 题目跟前面几道题很类似,直接写代码: class Solution { public: vector<vector<int>> combinationSum2(vector<int>& candida
阅读全文
摘要:题目链接: 回溯算法的剪枝非常重要!! 这个题是一个NP问题,方法仍然是N-Queens中介绍的套路。基本思路是先排好序,然后每次递归中把剩下的元素一一加到结果集合中,并且把目标减去加入的元素,然后把剩下元素(包括当前加入的元素)放到下一层递归中解决子问题。算法复杂度因为是NP问题,所以自然是指数量
阅读全文
摘要:欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 欧几里得 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 a % d == 0 , b % d
阅读全文