# 数据结构类

### 线段树 segment tree

http://www.careercup.com/question?id=5165570324430848

找区间内的value的个数

二维线段树

http://www.careercup.com/question?id=5746897784406016

http://www.careercup.com/question?id=15443800

关于线段树的构造,参考《手写代码必备手册》(https://github.com/soulmachine/acm-cheat-sheet), Page 52

### Trie

给定N个字串,作为一个库,N很大而且不断有新的字串加入。这是给一个字串s,判断s是否是库中某一个字符串的 substring

用KMP把s和库里的字符串挨个判断下当然可以,但是有点慢。这里也是将库中的字符串构建成 Trie,新加入的字串可以很快地并入Trie中。判断s是否是某一个字串的substring时,在Trie中进行KMP运算,具体过程有点复杂,还没想全。

Leetcode上最近出了几道Trie的题

### Tree

http://www.careercup.com/question?id=6040159610994688

变体:寻找二叉树内距离指定结点最远的结点。

- BST

http://www.careercup.com/question?id=19016700

不构建BST的情况下判断两个序列生成的BST是否 Identical

对于序列S和序列T。若要相等,首先S[]和T[]必须相等。接着,从S[]开始,如果比S[]小,就找到第一个比S[]大的S[i]为止。这样,我们知道S[~i-] 构建了S[]的左子树,S[i~n-]构建S[]的右子树。 如果S[] > S[],就找到第一个比S[]小的S[j] 为止。

对T也一样。也可以划分成左右子数部分。然后递归比较两个左子树部分,和两个右子树部分。
平均情况O(nlogn),最坏情况O(n^)

思路

http://www.careercup.com/question?id=62565

approach类似 https://leetcode.com/problems/binary-tree-maximum-path-sum/

就是edge case要稍微考虑下

http://www.careercup.com/question?id=16126663

double sum(Node root){
if(root == null){
return ;
} return root.value + sum(root.left) + sum(root.right);
} 上面的代码返回啥?
返回所有结点的和 若return改成 -(root.value + sum(root.left) + sum(root.right)); 返回啥?
返回奇数层的总和减去偶数层的总和 的差值。(假设root 在1层) -root.value + sum(root.left) + sum(root.right)
则变成偶数层的总和减去奇数层的总和 的差值。 可以看出两种情况下,root.value前总是负号。

分析

- Suffix Tree

http://www.careercup.com/question?id=16381662

F家,利用suffix tree寻找N个字符串的最长公共子串

### stack

http://www.careercup.com/question?id=5978736570662912

检测duplicate parethese

#算法类

###自底向上

http://www.careercup.com/question?id=22191662

玻璃杯塔倒水问题。求给定X升水,全倒下去后,第[i, j] 杯里的水量。

http://www.careercup.com/question?id=23869663

DP, 先找只有一个字母的比给定string 小的 sstring个数A1,再找只有两个字母的比给定string 小的 sstring个数A2,三个字母 A3,四个 A4……

若给定的是"bcd", A2 = (A1-1)*25 + 2

http://www.careercup.com/question?id=6306164115505152

注意是求最长总时间,不是求最多work 数

### string

http://www.careercup.com/question?id=5177378863054848

get total amount of palindromic substring in a stirng.

DP, 参考leetcode https://leetcode.com/problems/palindrome-partitioning-ii/

http://www.careercup.com/question?id=5092414932910080

其实就是string window,不过vote最高的那个答案代码组织的很清楚,值得借鉴。

http://www.careercup.com/question?id=20235671

### 倒腾数组类

http://www.careercup.com/question?id=5129701993480192

从低到高排好序的age,在小于O(N) 时间内统计出每个年龄的人数。

http://www.careercup.com/question?id=5652354158297088

求 A+B = C+D的组合

http://www.careercup.com/question?id=21263687

总长为n的数组内存储着值在[1-n] 的Interger (无序,可能有重复),统计每个数出现的次数。

http://www.careercup.com/question?id=16813665

给定数目是3,也许把中间那个做为基准考虑是个思路。
类似的还有求string中最大的palindromic substring

hint

http://www.careercup.com/question?id=5436643691462656

有点像智力题而不是算法题。

http://www.careercup.com/question?id=6261752413028352

### 数学题

http://www.careercup.com/question?id=5173527795728384

static public int rand7() {

    // This will gives us a result of
// 0 to 7 (binary 000 to 111)
// which should be evenly distributed.
// reject 7 so we have 0 to 6
int result = ;
while (result == ) {
result = randBit() * + randBit() * + randBit();
} return result;
} // gets a random 0 or 1
static public int randBit() { // Eliminate zero so we have an equal number
// of even/odd values (1, 2, 3, or 4)
int result = ;
while (result == ) {
result = rand5();
} return result % ;
}

general 解法

http://www.careercup.com/question?id=20355664

想到亦或,但是最优解法更加牛。智力题+1..

# System design

http://www.careercup.com/question?id=6432883367477248

Careercup 论坛上较有意思的题目整理的更多相关文章

  1. NOIp初赛题目整理

    NOIp初赛题目整理 这个 blog 用来整理扶苏准备第一轮 csp 时所做的与 csp 没 有 关 系 的历年 noip-J/S 初赛题目,记录了一些我从不知道的细碎知识点,还有一些憨憨题目,不定期 ...

  2. Discuz! X论坛上传附件到100%自动取消上传的原因及解决方案

    最近接到一些站长的反馈,说论坛上传附件,到100%的时候自己取消上传了.经查是附件索引表pre_forum_attachment表的aid字段自增值出现了问题,导致程序逻辑返回的aid值实际为一个My ...

  3. 转:基于IOS上MDM技术相关资料整理及汇总

    一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入 ...

  4. FORM实现中打开图片,链接,文档(参考自itpub上一篇帖子,整理而来)

    FORM实现中打开图片,链接,文档 参考自itpub上一篇帖子,整理而来 1.添加PL程序库D2kwutil.pll 2.主要实现程序 /*过程参数说明: v_application --打开文件的应 ...

  5. 基于IOS上MDM技术相关资料整理及汇总

    (转自:http://www.mbaike.net/special/1542.html) 一.MDM相关知识:MDM (Mobile Device Management ),即移动设备管理.在21世纪 ...

  6. Noip往年题目整理

    Noip往年题目整理 张炳琪 一.历年题目 按时间倒序排序 年份 T1知识点 T2知识点 T3知识点 得分 总体 2016day1 模拟 Lca,树上差分 期望dp 144 挺难的一套题目,偏思维难度 ...

  7. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

  8. ACM题目推荐(刘汝佳书上出现的一些题目)[非原创]

    原地址:http://blog.csdn.net/hncqp/article/details/1758337 推荐一些题目,希望对参与ICPC竞赛的同学有所帮助. POJ上一些题目在http://16 ...

  9. 第八届蓝桥杯c/c++省赛题目整理

    第一题 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都 ...

随机推荐

  1. 你应该知道的RPC原理

    你应该知道的RPC原理 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互 ...

  2. 【Linux高级驱动】LCD驱动框架分析

    1.framebuffer接口层(fbmem.c) 功能:给用户提供接口 fbmem_init  ),"fb",&fb_fops)  /*2.创建一个设备类*/ fb_cl ...

  3. atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug

    atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug 1. core.setProperty(o, "materialId&qu ...

  4. 看2016上半年O2O新风向,太阳终会穿破乌云

    纵观我国的O2O行业发展历程,去年上半年还处于资本的投资热潮,下半年就遭遇到了寒冬的突袭,使得很多才刚刚发芽的O2O企业直接被一阵寒风给吹倒.但同样的,一阵风浪过后才知道在O2O这片战场上谁才是有实力 ...

  5. maven pom.xml报错

    再在项目上强制update一下就可以了 如下: 此外使用maven时用默认的仓库速度会过慢 下载很小的jar包都需要很久 推介使用oschina的源 使用在这里:

  6. Web端测试和移动端测试的区别

    1.记录bug 在Web端可以通过系统自带的截图和QQ截图等方式来截取bug的图片,对于错误的地方可以用工具自带的标识来重点标记. 对于移动端设备可以用手机自带的截图工具来截图然后传到电脑上,个人一般 ...

  7. 巧用Windows 7计划任务设置定时提醒

    Windows 7系统有个“计划任务”功能,一般人都很少使用.其实,“计划任务”是系统自带的一个很实用的功能,比如说,这个功能可以设置定时提醒,这样在使用电脑时就不会因为太过投入而导致错过重要的事务. ...

  8. 最近面试遇到的Windows相关的题目

    上周准备在公司内部转岗,面了3个部门windows客户端相关的工作,最终拿到3个Offer,主要涉及C++和Windows两大块内容,C++的题目基本都答上了,Windows一直都是我的弱项,在这里记 ...

  9. php中抓取网页内容的代码

    方法一: 使用file_get_contents方法实现 $url = "http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru695114 ...

  10. Qt txt文本中获取字符串的问题

    QT对txt文本进行读写一般是采用QFile和QTextStream结合使用,在此不细说,主要说一下读取txt文本的注意事项.因为txt文本中有中文也有英文还有数字,要准确获得需要的字串可就要多一个心 ...