Careercup 论坛上较有意思的题目整理
# 数据结构类
### 线段树 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 论坛上较有意思的题目整理的更多相关文章
- NOIp初赛题目整理
NOIp初赛题目整理 这个 blog 用来整理扶苏准备第一轮 csp 时所做的与 csp 没 有 关 系 的历年 noip-J/S 初赛题目,记录了一些我从不知道的细碎知识点,还有一些憨憨题目,不定期 ...
- Discuz! X论坛上传附件到100%自动取消上传的原因及解决方案
最近接到一些站长的反馈,说论坛上传附件,到100%的时候自己取消上传了.经查是附件索引表pre_forum_attachment表的aid字段自增值出现了问题,导致程序逻辑返回的aid值实际为一个My ...
- 转:基于IOS上MDM技术相关资料整理及汇总
一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入 ...
- FORM实现中打开图片,链接,文档(参考自itpub上一篇帖子,整理而来)
FORM实现中打开图片,链接,文档 参考自itpub上一篇帖子,整理而来 1.添加PL程序库D2kwutil.pll 2.主要实现程序 /*过程参数说明: v_application --打开文件的应 ...
- 基于IOS上MDM技术相关资料整理及汇总
(转自:http://www.mbaike.net/special/1542.html) 一.MDM相关知识:MDM (Mobile Device Management ),即移动设备管理.在21世纪 ...
- Noip往年题目整理
Noip往年题目整理 张炳琪 一.历年题目 按时间倒序排序 年份 T1知识点 T2知识点 T3知识点 得分 总体 2016day1 模拟 Lca,树上差分 期望dp 144 挺难的一套题目,偏思维难度 ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- ACM题目推荐(刘汝佳书上出现的一些题目)[非原创]
原地址:http://blog.csdn.net/hncqp/article/details/1758337 推荐一些题目,希望对参与ICPC竞赛的同学有所帮助. POJ上一些题目在http://16 ...
- 第八届蓝桥杯c/c++省赛题目整理
第一题 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都 ...
随机推荐
- Spring - 基于注解的组件扫描
关于Spring的书籍都会花很大篇幅来讲解Spring如何注入各种bean的问题,非常令人头疼,自己在工作中还从来没有用到过. 所以就要跳过那些篇章,直接学习基于注解的组件扫描. 发现spring2是 ...
- Nodejs学习笔记(九)--- 与Redis的交互(mranney/node_redis)入门
目录 简介和安装 redis简介 redis安装 redis运行 node_redis安装 连接到redis服务器redis.createClient() 认证 client.auth(passwor ...
- Atitit. .net c# web 跟客户端winform 的ui控件结构比较
Atitit. .net c# web 跟客户端winform 的ui控件结构比较 .net 4.5 webform Winform 命名空间 System.Web.UI.WebControls ...
- .NET Framework各版本汇总以及之间的关系
目录(?)[-] 原文链接:http://blog.csdn.net/kingmax54212008/article/details/25886345 NET Framework 版本关系 获取NET ...
- python爬虫抓取数据
URL管理器实现方式:1. 内存python内存待爬取URL集合:set()已爬取URL集合:set() 2. 关系数据库MySQLurls(url, is_crawled) 3. 缓存数据库(高性能 ...
- iOS10之后openURL:方法过期之后的替代方法及使用
目前苹果为iOS10开放了一个key:UIApplicationOpenURLOptionUniversalLinksOnly但亲测无效 目前使用的是这个key:UIApplicationOpenUR ...
- Atom插件安装及常用插件推荐
Atom是个不错的文本编辑工具,也该可以改造成IDE用,主要靠插件实现各种扩展功能. 因为网络环境的原因,在线安装不容易成功,一般选择手动安装. 以下是我搜索网络资源后总结的手动安装方法. Atom插 ...
- 谈一谈PHP的代码重构
随着 PHP 从一种简单的脚本语言转变为一种成熟的编程语言,一个典型的 PHP 应用程序的代码库的复杂性也随之增大.为了控制对这些应用程序的支持和维护,我们可以使用各种测试工具来自动化该流程.其中一种 ...
- Autosizer应用程序窗口控制工具
Autosizer是一个系统辅助软件,窗口控制工具,它能指定程序窗口的大小位置置顶等,可以将窗口最大化,最小化,比如在需要截图的时候可以讲窗口设定大小640*480,然后用FSCapture捕捉活动窗 ...
- Spring 4.3.2+quartz2.2.3单机、集群+websocket集群实现文本或图片推送、接收及显示
相关环境 Nginx,Spring4.x当前(要选择4.0+),tomcat8.x,Quartz 2.x集群 测试面页:http://sms.reyo.cn/socket.html 测试面页是文本和图 ...