- 博客(13)
- 资源 (16)
- 收藏
- 关注
原创 3个数和为0
给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。Input第1行,1个数N,N为数组的长度(0 <= N <= 1000)第2 - N + 1行:A[i](-10^9 Output如果
2017-03-30 23:48:42 304
原创 编辑距离
编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->s)sittin (e->i)sitting (->g)所以kitten和sitting的编辑距离是3。俄
2017-03-30 01:26:54 322
原创 2 3 5 7的倍数
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。思路:容斥原理#include #include #include #include #include #include using namespace std;int main(int argc, char *argv[]){ long long n,
2017-03-29 02:08:29 612
原创 寻找丑数
题目:我们把只包含因子2、3 和5 的数称作丑数(Ugly Number)。例如6、8 都是丑数,但14 不是,因为它包含因子7。习惯上我们把1 当做是第一个丑数。求按从小到大的顺序的第1500 个丑数。int fun(int k){ vector buf; buf.push_back(1); buf.push_back(2); buf.push_back(3); int
2017-03-21 00:40:35 238
原创 把数组排成最小的数
题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。bool compare(const string &a, const string &b){ string left = a + b; string right = b + a; return left.compare(
2017-03-20 23:33:03 173
原创 栈的push、pop 序列
题目:输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序。为了简单起见,我们假设push 序列的任意两个整数都是不相等的。比如输入的push 序列是1、2、3、4、5,那么4、5、3、2、1 就有可能是一个pop 系列。因为可以有如下的push 和pop 序列:push 1,push 2,push 3,push 4,pop,pus
2017-03-16 00:57:41 1514
原创 矩阵中最大的二维矩阵
求一个矩阵中最大的二维矩阵(元素和最大).如:1 2 0 3 42 3 4 5 11 1 5 3 0中最大的是:4 55 3作者: 天才小喵 链接:http://www.imooc.com/article/4313来源:慕课网求一个矩阵中最大的二维矩阵(元素和最大).如:1 2 0 3 42 3 4 5 11 1 5 3 0中最大的是:
2017-03-15 01:33:51 1186
原创 数组中出现两次的数
假设你有一个用1001 个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1 到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方式的算法吗?int fun(int a[]){ int result = a[0]; for
2017-03-12 12:41:40 1463
原创 Merge Two BST
You have two BST, you have to merge them into a single BST, inplace and linear time.struct Node{ int val; Node *left; Node *right; Node(int v) : val(v), left(NULL), right(NULL) {}};Node*
2017-03-10 01:05:32 236
原创 找最大序列
A circus is designing a tower routine consisting of people standing atop one another’sshoulders. For practical and aesthetic reasons, each person must be both shorter and lighter than the person bel
2017-03-08 01:21:46 210
原创 找到两个数的差为一个特定数
Given an integer 'k' and an sorted array A (can consist of both +ve/-ve nos), output 2 integers from A such that a-b=k.void fun(vector &a, int key){ int n = a.size(); if (n <= 1) { return; }
2017-03-08 00:59:10 509
原创 组合(非递归)
输入整形数组和长度,输出符合长度的组合,组合顺序应与输入保持一致。如输入:{1, 2, 3}, 长度:2输出:{1,2},{1,3}, {2, 3}void permutation(int a[], int n, int k){ vector b(k); stack s; s.push(-1); while(!s.empty()) {
2017-03-04 23:16:36 1153
原创 全排列(非递归)
打印一个数组的全排列,要求非递归。void permutation(int a[], int n){ stack buf; bool needAdd = false; buf.push(0); buf.push(0); while (!buf.empty()) { if (buf.top() == n-1) { for (int i = 0; i < n; i++
2017-03-03 01:04:50 448
exceptional c++ style中文版 pdf 刘未鹏译
2010-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人