作者:Lucida
- 微博:@peng_gong
- 豆瓣:@figure9
原文链接:http://zh.lucida.me/blog/top-code-offline-browser/
关于
左耳朵耗子在最近发了一条关于leetcode的微博:
佩服之余,想起自己两年前找工作时随手写的一个小程序:Top Coder算法题目浏览器,硬盘里翻了翻没找到,于是找师弟要了一份copy,截了几张图放到微博上。
没想到不少人表示很感兴趣,还有些同学留下邮箱索要这个算法题目浏览器——我是懒的一个个发邮箱,所以干脆放到博客上,顺便提高下访问量 :)
介绍
TC Browser
TC Browser:全称Top Coder offline Browser,是我为了方便自己练习算法题目而花一下午制作的Windows小程序。
TC Browser内置2933道算法题目,这些算法题目覆盖动态规划(Dynamic Programming)、递归(Recursion)、迭代(Iteration)、暴力(Brute Force)和图论(Graph Theory)等17个分类,并按照级别(Level)不同和难度(Success Rate)不同进行分类,以便从简单到复杂逐步练习。
TC Browser可以
- 离线浏览算法题目 -_-
- 按照算法、级别和难度过滤题目,以便逐步提高水平。
- 随机出题 -_-
TC Browser不可以
- 评判(Judge)题目,如它的名字,TC Browser只是一个题目浏览器,而非一个完整的OJ(Online Judge)。不过好在TC题目的Sample Input/Output比较全。
- 提供答案(Answer),嗯,这些题目都没有答案,所以对于初学者可能不合适。
为什么选择Top Coder?
- 大量的算法题目:TC Browser是我两年半前写的,当时有2933道题目,现在的题目只会更多。
- 题目具有良好的分类:Top Coder里的每道算法题目都有明确的分类:类型(Category)、级别(Level)、难度(Success Rate)。
- 良好的题目陈述(Problem Statement):Top Coder的题目陈述非常清晰,并且都带有若干组示例输入/输出(Sample Input/Output)。
- 题目相对实际(Practical):相对于一些OJ的纯算法题目,Top Coder里面的题目更加实际——更接近与实际的编程而非单纯的算法演练,对于非算法竞赛出身的我非常合适。
- Top Coder在线不稳定:也许是我的网络原因,我经常登陆不进Top Coder,这也是我编写离线版TC的原因之一。
使用
Top Coder术语
如果你玩过Top Coder,请跳过本节 :-)
Top Coder的题目分为两个区(Division,简称D),每个区又分为三个级别(Level,简称L),每道题目有其通过率(Success Rate)。D1难度小于D2,L1难度小于L2小于L3,通过率越高难度越低。
举例来说,一道D1L1SR50的题目适合初学者练习,一道D2L2SR30的题目就可能需要相当的算法水准才能搞定。
我如何使用TC Browser
在找工作初期,我的算法水平非常拙计,于是我所练习的题目大多都是D1L2和D1L3,SR>40的题目,同时根据往届师兄师姐的面试经验,我会重点练习动态规划、递归、字符串操作和搜索这几个类型的题目。
到了中后期,随着经验的累计,我开始练习D1L3的题目,并尝试一些D2L1的题目。
到了最后,就开始使用Random模式——从D2L1和D2L2中随机出一道题目然后思考解决思路,想出来之后再随机下一道。
为了练习方便,我为TC Browser加了一个做题模式——其实就是把题目选择区隐藏,这样就可以方便的双窗口操作。
浏览模式:
做题模式:
顺便提一句,TC Browser左上角的Config、Switch Mode和About三个按钮只有Switch Mode能用——一个按钮,三倍情怀。
面试有多难?
就我的面试经验来说,D2L1的题目已经相当够用了——绝大多数的编程题目都没有超过D1L3的难度,要知道面试只有45分钟,搞那些惊天地泣鬼神的算法题目面试官和面试者谁都受不了。
但也要注意,我没有算法竞赛背景,所以面试官不会问太难的题目,但对于那些算法竞赛选手就是另一种情况了——面试官需要用更难的题目来确认你是一个合格的算法选手,正所谓道高一尺,魔高一丈。
下载地址
所以下载地址在这里:网盘地址
解压密码是宇宙的终极答案(The ultimate anwser to the universe)。
谢谢试用,至于代码可以自行反编译阅读(写的翔一般还是不读为好),恕不赘述。
作者:Lucida
- 微博:@peng_gong
- 豆瓣:@figure9
原文链接:http://zh.lucida.me/blog/top-code-offline-browser/
Top Coder算法题目浏览器的更多相关文章
-
[翻译]How to Find a Solution ( 如何找到问题的答案,来自Top Coder 网站)
原文链接: https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/ ...
-
程序员编程艺术:第三章续、Top K算法问题的实现
程序员编程艺术:第三章续.Top K算法问题的实现 作者:July,zhouzhenren,yansha. 致谢:微软100题实现组,狂想曲创作组. 时间:2011年05月08日 ...
-
PTA数据结构与算法题目集(中文) 7-20
PTA数据结构与算法题目集(中文) 7-20 7-20 表达式转换 (25 分) 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个 ...
-
一道算法题目, 二行代码, Binary Tree
June 8, 2015 我最喜欢的一道算法题目, 二行代码. 编程序需要很强的逻辑思维, 多问几个为什么, 可不可以简化.想一想, 二行代码, 五分钟就可以搞定; 2015年网上大家热议的 Home ...
-
iOS面试中常见的算法题目
一.前言 这里是在iOS求职中自己遇到的算法题,希望对大家有所帮助.不定期更新.如果大家想在线运行代码调试,可以将代码拷贝到这里.然后进行调试.下面就是常见的算法题目. 二.正文 1.就n的阶乘.(这 ...
-
【起】ACM类下为过往所做过的部分算法题目
[起]ACM类下为过往所做过的部分算法题目 几百道题,日后细细品味.
-
[优化]Steamroller-freecodecamp算法题目
晚上在medium看到一篇关于找工作的文章,里面提到一个面试题目--flattening an array(扁平化数组).这我好像在哪看过!应该是freecodecamp里的算法某一题.翻了下博客记录 ...
-
Map the Debris -freecodecamp算法题目
Map the Debris 1.要求 返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期. 原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: ...
-
LeetCode算法题目解答汇总(转自四火的唠叨)
LeetCode算法题目解答汇总 本文转自<四火的唠叨> 只要不是特别忙或者特别不方便,最近一直保持着每天做几道算法题的规律,到后来随着难度的增加,每天做的题目越来越少.我的初衷就是练习, ...
随机推荐
-
redis、memcache、mongoDB 做了对比
from: http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对redis.memcache.mongoDB 做了对比. 1.性能 都比较 ...
-
从MyEclipse转战到IntelliJ IDEA的经历
从MyEclipse转战到IntelliJ IDEA的经历 我一个朋友写了一篇"从Eclipse到Android Studio"博文,于是心潮澎湃我也想一篇,分享自己用这个IDEA ...
-
gulp plugins 插件介绍
目录 [−] gulp API gulp.src(globs[, options]) gulp.dest(path[, options]) gulp.task(name[, deps], fn) gu ...
-
C# 扩展方法奇思妙用高级篇六:WinForm 控件选择器
在Web开发中,jQuery提供了功能异常强大的$选择器来帮助我们获取页面上的对象.但在WinForm中,.Net似乎没有这样一个使用起来比较方便的选择器.好在我们有扩展方法,可以很方便的打造一个. ...
-
RHEL6.4 postfix+dovecot搭建邮件服务器
实验需求:为公司搭建一台能够收信和发信的邮件服务器(192.168.100.1),为员工提供服务,公司域名为jinjianjun.com. 一.修改DNS服务器(192.168.100.2)上mx邮件 ...
-
TreeView控制消息
控制消息的作用 通过发送消息到Treeview控件, 就能够控机Treeview控件.常用的控制有: 获取被点击的节点 获取节点的文本 设置节点的文本 获取节点的父节点 获取节点的子节点 TVM_GE ...
-
Java基础教程1:环境配置及第一个HelloWorld.java
本文主要介绍JDK环境配置.Sublime Text3配置及第一个HelloWorld.Java程序.运行环境为Win10系统,使用JDK1.8版本. 1. JDK下载及环境配置 1.1 JDK下载 ...
-
Python-炫酷二维码
一.环境 首先是安装python环境,如果没有安装python环境看此处 二.myqr myqr 其实是一个 python 的脚本,可以生产二维码图片,作者也对python脚本进行了打包,在 ...
-
CSS background汇总
本文更新版本 ,请跳转 所有背景属性都不能继承. 1. background-color 所有元素都能设置背景颜色. background-color的默认值是transparent:也就是说, ...
-
stl string 小练习
最近没啥可写的 这里写下做的STL小练习 作为记录 去除指定字符串中的空格 获取文件名并根据名字创建临时文件,以TMP后缀结尾,已经为TMP后缀结尾文件则创建以XXX后缀结尾文件 读取一行输入内容 ...