OJ习题
文章平均质量分 60
cc509a
这个作者很懒,什么都没留下…
展开
-
lintcode Recover Rotated Sorted Array
Given a rotated sorted array, recover it to sorted array in-place.Have you met this question in a real interview? YesExample[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]Challenge原创 2015-08-03 17:31:35 · 678 阅读 · 0 评论 -
LintCode 丑数
中等 丑数查看运行结果 20%通过设计一个算法,找出只含素因子3,5,7 的第 k 大的数。符合条件的数如:3,5,7,9,15......您在真实的面试中是否遇到过这个题? Yes样例如果k=4, 返回 9挑战要求时间复杂度为O(nlogn)或者O(n)class Soluti原创 2015-07-09 14:50:37 · 1205 阅读 · 0 评论 -
LintCode复制带随机指针的链表
中等 复制带随机指针的链表查看运行结果 27%通过给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。 用了一个哈希表,空间换取时间/** * Definition for singly-linked list with a random pointer. *原创 2015-07-09 12:52:01 · 1341 阅读 · 0 评论 -
LintCode 带最小值操作的栈
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。您在真实的面试中是否遇到过这个题? Yes样例如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1用了两个st原创 2015-07-09 13:39:46 · 2484 阅读 · 0 评论 -
LintCode 用递归打印数字
中等 用递归打印数字24%通过用递归的方法找到从1到最大的N位整数。您在真实的面试中是否遇到过这个题? Yes样例给出 N = 1, 返回[1,2,3,4,5,6,7,8,9].给出 N = 2, 返回[1,2,3,4,5,6,7,8,9,10,11,...,99].用字符串模拟数字clas原创 2015-07-02 10:08:39 · 1298 阅读 · 2 评论 -
Lintcode快速幂
计算an % b,其中a,b和n都是32位的整数。例如 231 % 3 = 2例如 1001000 % 1000 = 0这题要考虑输入的a,b是否为负数,结果是否溢出,是否超时,这里用到了分治递归class Solution {public: /* * @param a, b, n: 32bit integers * @return:原创 2015-06-27 20:17:15 · 752 阅读 · 0 评论 -
LintCode 二叉树的遍历 (非递归)
前序:class Solution {public: /** * @param root: The root of binary tree. * @return: Preorder in vector which contains node values. */ vector preorderTraversal(TreeNode *root) {原创 2015-07-01 14:48:55 · 638 阅读 · 1 评论 -
Lintcode 将整数A转换为B
样例如把31转换为14,需要改变2个bit位。(31)10=(11111)2(14)10=(01110)2贴代码class Solution {public: /** *@param a, b: Two integer *return: An integer */ int bitSwapRequired(int a, int原创 2015-07-01 15:17:35 · 1309 阅读 · 2 评论 -
LintCode 字符串查找
字符串查找(又称查找子字符串),是字符串操作中一个很有用的函数。你的任务是实现这个函数。对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。样例如果 source = "source" 和 target = "target",返回 -1原创 2015-07-01 16:01:24 · 1605 阅读 · 0 评论 -
Lint旋转数组中最小数字
运用二分法思想假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。你可以假设数组中不存在重复的元素。class Solution {public: /** * @param num: a rotated sorted array * @retur原创 2015-06-08 00:26:51 · 492 阅读 · 0 评论 -
Lintcode运算符重载
实现赋值运算符重载函数,确保:新的数据可准确地被复制旧的数据可准确地删除/释放可进行 A = B = C 赋值class Solution {public: char *m_pData; Solution() { this->m_pData = NULL; } Solution(char *pData) { th原创 2015-06-07 23:34:53 · 785 阅读 · 0 评论 -
LintCode 寻找缺失的数
中等 寻找缺失的数查看运行结果 32%通过给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。您在真实的面试中是否遇到过这个题? Yes样例N = 4 且序列为 [0, 1, 3] 时,缺失的数为2。class Solution {public: /**原创 2015-07-01 22:22:44 · 1135 阅读 · 0 评论 -
LintCode 子树
容易 子树19%通过有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。您在真实的面试中是否遇到过这个题? Yes样例下面的例子中 T2 是 T1 的子树: 1 3 / \原创 2015-07-02 10:26:30 · 1497 阅读 · 0 评论 -
LintCode比较字符串
容易 比较字符串27%通过比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母您在真实的面试中是否遇到过这个题? Yes样例给出 A = "ABCD" B = "ACD",返回 true给出 A = "ABCD" B = "AABC", 返回 false原创 2015-07-03 22:11:58 · 638 阅读 · 0 评论 -
lintcode Binary Search
For a given sorted array (ascending order) and a target number, find the first index of this number in O(log n) time complexity.If the target number does not exist in the array, return -1.原创 2015-08-03 18:09:35 · 662 阅读 · 0 评论 -
第一个之出现一次的字符
第一行输入数字T,表示有T行字符,然后输入T个字符,输出结果为T行,每行输出滴T个字符的里第一个只出现一次的字符例如;输入2abcabcdtestoneline输出ds一下为AC代码,思路为哈希统计#include#include#includeusing namespace std;int main () { int t;原创 2015-08-13 16:05:12 · 736 阅读 · 0 评论 -
LintCode 最近公共祖先
中等 最近公共祖先查看运行结果 34%通过给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。您在真实的面试中是否遇到过这个题? Yes样例对于下面这棵二叉树 4 / \3 7 / \ 5 6LCA(3,原创 2015-07-16 16:42:49 · 839 阅读 · 0 评论 -
LintCode 字符串转化成正数(atoi)
困难 转换字符串到整数15%通过实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。您在真实的面试中是否遇到过这个题? Yes样例"10" =>10"-原创 2015-07-16 17:59:46 · 1512 阅读 · 0 评论 -
LintCode 第K大元素
中等 第k大元素查看运行结果 19%通过在数组中找到第k大的元素您在真实的面试中是否遇到过这个题? Yes样例给出数组[9,3,2,4,8],第三大的元素是4给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推注意你可以交换数组中的原创 2015-07-15 22:50:34 · 1846 阅读 · 0 评论 -
LintCode 二叉树的层次遍历 II
中等 二叉树的层次遍历 II查看运行结果 42%通过给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 /原创 2015-07-06 14:45:11 · 1192 阅读 · 0 评论 -
LintCode 二叉树的层次遍历
中等 二叉树的层次遍历查看运行结果 33%通过给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7返回它的原创 2015-07-06 14:38:58 · 2242 阅读 · 1 评论 -
Lintcode前序遍历和中序遍历树构造二叉树
样例给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \1 /** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { *原创 2015-06-14 16:15:35 · 1203 阅读 · 0 评论 -
LinCode落单的数
容易 落单的数查看运行结果 60%通过给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,2,2,1,3,4,3],返回 4挑战一次遍历,常数级的额外空间复杂度位运算class Solut原创 2015-07-03 15:58:20 · 978 阅读 · 0 评论 -
HihoCoder#1082 : 然而沼跃鱼早就看穿了一切
时间限制:1000ms单点时限:1000ms内存限制:256MB描述fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不区分大小写)。为了使句子不缺少成分,统一换成 “fjxmlhx” 。输入输入包括多行。每行是一个字符串,长度不超过200。一行的末尾与下一行的原创 2014-12-17 15:52:34 · 1705 阅读 · 2 评论 -
Lintcode空格替换
替换字符串里的空格设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。class Solution {public: /** * @param string: An array of Char * @param length: The true length of the s原创 2015-06-07 23:32:05 · 2289 阅读 · 0 评论 -
LintCode 判断一个二叉树树是否是另一个二叉树的子书
有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) {原创 2015-06-22 16:36:40 · 1976 阅读 · 0 评论 -
POJ 1011
#include#includeconst int Max = 64;using namespace std;int n;bool cmp(int a,int b) {return a>b;}bool dfs(int *length ,bool *vist, int len, int mlen, int start, int num){ if (num == n)原创 2014-12-02 23:41:34 · 398 阅读 · 0 评论 -
POJ1004
#includeusing namespace std;int main (){double num[12];for (int i=0;i<12;i++) { cin>>num[i]; }double m = 0.0f;for (int i=0;i<12;i++) { m+=num[i]; } m = m /12.0;cout<<"$"<<m;}原创 2014-12-02 23:35:12 · 423 阅读 · 0 评论 -
POJ 1953
#includeusing namespace std;const int Max =45; long long GetUglyNumber( int index){ long long fnumOne = 0; long long fnumTwo = 1; long long fibnum = 0; for (unsigned int i = 0 ; i原创 2014-12-02 23:49:23 · 479 阅读 · 0 评论 -
POJ 1088
#includeusing namespace std;const int Max =100;int map [ Max ][ Max ];int value [ Max ][ Max ] = {0};int r;int c;int dp(int i,int j ){ int m = 0; if (value[ i ][ j ] !=0 ) retur原创 2014-12-02 23:43:34 · 413 阅读 · 0 评论 -
POJ 1005
#includeusing namespace std;const double pi = 3.141592653;int main(){ int num; cin>> num; double x,y; for (int i = 0; i<num; i++) { cin>>x>>y; double are = pi*(原创 2014-12-02 23:37:38 · 407 阅读 · 0 评论 -
POJ 1067
#include #include"cmath"using namespace std;const double gold = (sqrt(5.0) + 1)/ 2; int main(){ int a; int b; while (cin >> a >> b) { i原创 2014-12-02 23:42:03 · 446 阅读 · 0 评论 -
POJ 1006
#includeusing namespace std;int main(){ int p,e,i,d,date; int cas = 0; while (cin>>p>>e>>i>>d ) { if(p == -1 && e == -1 && i == -1 && d == -1 ) break;原创 2014-12-02 23:38:49 · 518 阅读 · 0 评论 -
POJ 1003
#includeusing namespace std;int main(){ double m; while (cin>>m&&m>0.0) { int n=0; double c=0.0; while(c<m) { ++n; c+=1.0/(n+1); }cout<<n<<" card(s)"<<endl; }}原创 2014-12-02 23:34:17 · 382 阅读 · 0 评论 -
poj 1007,DNA序列
DNA序列int main(){int n,m,k;cin>>m>>n;char arg[100][50];int dna[100] = {0};int flag[100] = {0};for (int i = 0; i < n; ++i){for (int j = 0; j < m; ++j){cin>>arg[i][j];}}for (int i = 0; i原创 2014-11-19 17:05:32 · 656 阅读 · 1 评论 -
POJ 3176,1163 數字三角形
#include#include#include using namespace std;int max (int a,int b){ return a>b? a:b;}int main(int argc , const char * argv[]){ int n; cin>>n; int a[350][350]={0}; f原创 2014-12-13 00:02:14 · 428 阅读 · 0 评论 -
POJ 1852
#includeusing namespace std;const int maxn = 1000000;inline int maxv(int a,int b){ return a>b? a:b;}inline int minv(int a,int b){ return a<b? a:b;}int main(int argc , const char * a原创 2014-12-02 23:48:38 · 474 阅读 · 0 评论 -
POJ 1338
//// main.cpp// poj//// Created by on 2014/3/17.// Copyright (c) 2014年 All rights reserved.//#includeusing namespace std;const int Max =1500;int Min( int a2, int a3 ,int a5 ){ i原创 2014-12-02 23:46:54 · 381 阅读 · 0 评论 -
c++字典树 Trie树(hihocoder1014)
#include#include#include using namespace std;class Node{public: int c; Node * child[26]; Node();};Node::Node(){ for (int i =0; i < 26; i++) { this->child[i]=NULL;原创 2014-12-07 14:44:37 · 747 阅读 · 0 评论 -
LintCode 合并两个排序链表
样例给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。感觉很像mergeSort/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNo原创 2015-06-21 22:22:30 · 881 阅读 · 0 评论