# 数据结构类

### 线段树 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. windows本地自动集成代码+SSH服务器配置

    在windows环境下使用Jenkins自动集成代码 描述: 局域网电脑A是本地服务器,安全win7系统,安装了Jenkins:现在想让A成为测试服务器,需要隔一段时间从SVN里同步出最新的代码,供客 ...

  2. atitit.编辑表单的实现最佳实践dwr jq easyui

    atitit.编辑表单的实现最佳实践dwr jq easyui 1. 提交表单 1 2. 表单验证 1 3. 数据保存使用meger方式取代save&update方式 1 3.1. Filte ...

  3. Windows对象操作:浏览器窗口信息

    属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口. 属性:Windows.shuxing; 方法(函 ...

  4. Javascrip的概述

    前言:逻辑思维和思路很重要 ———————————————————————————————————————————————— 一.JavaScript的概述 javascript 具有人机交互性,ja ...

  5. Abstract Server模式,Adapter模式和Bridge模式

    简易的台灯 Abstract Server模式 谁拥有接口. 接口属于它的客户,而不是它的派生类. 接口和客户之间的逻辑关系,强于接口和其派生类的逻辑关系. 逻辑关系和实体关系的强度是不一致的.在实体 ...

  6. Python核心编程(切片索引的更多内容)

    # coding=utf8 s = 'abcde' i = -1 for i in range(-1, -len(s), -1): print(s[:i]) # 结果 ''' abcd abc ab ...

  7. 上海SAP代理商 服装行业ERP系统 达策SAP金牌代理商

    上海SAP代理商 服装行业ERP系统 达策SAP金牌代理商上海达策公司的前身是上海InfoPower技术有限公司,该公司在中国ERP软件的销售和服务长达20年.在2005年4月上海达策正式成立,致成立 ...

  8. 原创内容搬家到csdn博客啦~

    以后原创的文章就发布在csdn博客啦: http://blog.csdn.net/aceyan0718 这里就用来当作一个网络笔记本吧,转载些优质的内容

  9. showmessage函数里

    首先说一下,漏洞是t00ls核心群传出去的,xhming先去读的,然后我后来读的,读出来的都是代码执行,1月5日夜里11点多钟,在核心群的黑客们的要求下,xhming给了个poc,我给了个exp,确实 ...

  10. MySQL 错误

    (1) Ignoring query to other database D:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -Uroot 原因是 ...