# 数据结构类

### 线段树 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. Spring - 基于注解的组件扫描

    关于Spring的书籍都会花很大篇幅来讲解Spring如何注入各种bean的问题,非常令人头疼,自己在工作中还从来没有用到过. 所以就要跳过那些篇章,直接学习基于注解的组件扫描. 发现spring2是 ...

  2. Nodejs学习笔记(九)--- 与Redis的交互(mranney/node_redis)入门

    目录 简介和安装 redis简介 redis安装 redis运行 node_redis安装 连接到redis服务器redis.createClient() 认证 client.auth(passwor ...

  3. Atitit. .net c# web 跟客户端winform 的ui控件结构比较

    Atitit. .net c# web 跟客户端winform 的ui控件结构比较 .net   4.5 webform Winform 命名空间 System.Web.UI.WebControls ...

  4. .NET Framework各版本汇总以及之间的关系

    目录(?)[-] 原文链接:http://blog.csdn.net/kingmax54212008/article/details/25886345 NET Framework 版本关系 获取NET ...

  5. python爬虫抓取数据

    URL管理器实现方式:1. 内存python内存待爬取URL集合:set()已爬取URL集合:set() 2. 关系数据库MySQLurls(url, is_crawled) 3. 缓存数据库(高性能 ...

  6. iOS10之后openURL:方法过期之后的替代方法及使用

    目前苹果为iOS10开放了一个key:UIApplicationOpenURLOptionUniversalLinksOnly但亲测无效 目前使用的是这个key:UIApplicationOpenUR ...

  7. Atom插件安装及常用插件推荐

    Atom是个不错的文本编辑工具,也该可以改造成IDE用,主要靠插件实现各种扩展功能. 因为网络环境的原因,在线安装不容易成功,一般选择手动安装. 以下是我搜索网络资源后总结的手动安装方法. Atom插 ...

  8. 谈一谈PHP的代码重构

    随着 PHP 从一种简单的脚本语言转变为一种成熟的编程语言,一个典型的 PHP 应用程序的代码库的复杂性也随之增大.为了控制对这些应用程序的支持和维护,我们可以使用各种测试工具来自动化该流程.其中一种 ...

  9. Autosizer应用程序窗口控制工具

    Autosizer是一个系统辅助软件,窗口控制工具,它能指定程序窗口的大小位置置顶等,可以将窗口最大化,最小化,比如在需要截图的时候可以讲窗口设定大小640*480,然后用FSCapture捕捉活动窗 ...

  10. Spring 4.3.2+quartz2.2.3单机、集群+websocket集群实现文本或图片推送、接收及显示

    相关环境 Nginx,Spring4.x当前(要选择4.0+),tomcat8.x,Quartz 2.x集群 测试面页:http://sms.reyo.cn/socket.html 测试面页是文本和图 ...