# 数据结构类

### 线段树 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. paip.判断文件是否存在uapi python php java c#

    paip.判断文件是否存在uapi python php java c# ==========uapi file_exists exists() 面向对象风格:  File.Exists 作者: 老哇 ...

  2. iOS开发----地图与导航--定位和位置信息获取

    要实现地图.导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作.Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图 ...

  3. css3过渡transition

    过渡:transition transition:transition-property/duration/timing-function/delay的缩写. transition : <'tr ...

  4. java生成竖排文字图片

    package com.kadang.designer.web.action;import java.awt.Color;import java.awt.Font;import java.awt.Fo ...

  5. DES加密 java与.net可以相互加密解密的方法

    我.net程序员.今天和java的童鞋交互,单点登录的操作.采用了如下的加密和解密的方式.经过验证,完美结合.通过这个方法可以实现java和C#相互加密与解密 并能保持解密出来一致. 废话少说,上代码 ...

  6. SQL Server 2008 删除数据库帐号失败问题

    SQL Server 2008 中单独为一个项目建立了一个账号zdhsa,结果发现无法删除. 问题:删除zdhsa失败. 解决:首先从"安全性"-"架构"中删除 ...

  7. QT210 Android4.0源码编译和烧录文档整理

    开发环境说明: Ubuntu 12.04 LTS 32bit 源码文件目录: 勤研光盘2013-5-4\4.0 https://github.com/jackyh (建议在Linux环境下通过git下 ...

  8. [推荐]T- SQL性能优化详解

    [推荐]T- SQL性能优化详解 博客园上一篇好文,T-sql性能优化的 http://www.cnblogs.com/Shaina/archive/2012/04/22/2464576.html

  9. 用GO语言开发editplus编辑器插件(附源码)

    我要开发的插件功能极为简单,就是对用户选中的内容进行base64编码或解密工作. 其中所涉及的技术部分主要是GO语言程序开发和editplus插件配置的部分,首先我们来看一下GO语言代码的写法,如下: ...

  10. 奇怪吸引子---Rucklidge

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...