OJ常用技巧-综述
来源:互联网 发布:毛姆读书随笔 知乎 编辑:程序博客网 时间:2024/06/05 20:12
OJ常用技巧-综述
OJ(Online Judgement),刷题是每个程序员日常都应该进行训练的小项目。它可以训练程序员解决问题的能力,加强对常用算法和数据结构的掌握程度,增进对编程语言的这种特性与常用库函数的使用。做到信手拈来,快速写出简洁、高效、逻辑清晰、无Bug的代码功能片段。因此,我打算结合自己日常刷题的经验总结一下三大主流语言C++、Python、Java OJ的常用技巧,本系列文章重点不在算法和数据结构,而在编程语言本身。算法和数据结构的重要性相信不用我说,各位程序员心里都有数,只是这方面内容已有很多,因此我换个思路,不再赘述。
C++ OJ常用技巧综述
C++ 刷题要熟练掌握STL库中提供的各种实用算法,实用容器,,,,
很多人相比Python而言认为C++ 代码写起来很是繁琐,一是确实C++ 语法较为复杂不够灵活所致,Python代码虽然简洁但是执行起来效率还是相比C++ 打了很多折扣;二是还是没有做到熟练灵活地掌握已有的工具库,语法特性,以及C++11 的新特性。
算法和数据结构的知识是所有刷题者都应掌握的基础知识,这里我们重点谈的是已有的工具,语言特性等。
参考列表:
* 《C++ Primer》
* 《Effective C++》、《Effective STL》
* 《STL 源码剖析》
* 《Designing Components with C++ STL》
* http://en.cppreference.com/w/
Java OJ常用技巧综述
STL的强大和完善,历来是其他语言争相模仿的范例。伴随着诸多企业级Web项目、诸多开源三方库、Maven仓库、大数据技术(Hadoop、Spark生态)、高可移植性、虚拟机HotSpot等技术的崛起,Java语言占据着重要的应用地位。
Java本身自己的标准库提供的工具用来OJ并不比C++的STL好用多少,但是随着Java 8中引入的Lambda表达式 和 Streaming API,让Java可以衍生出很多简洁、高效的编程,语言特性所带来的编程上的优势开始显现出来。
随着虚拟机技术的不断进步,HotSpot、JIT等技术大大地提高了Java代码的执行效率。
参考列表:
* 《Data Structures and Algorithm Analysis in Java》 - 3rd Edition
* 《Functional Thinking》
* 《Java Closures and Lambda》
* 《Algorithms》 - Sedgewick 4th Edition
* http://docs.oracle.com/javase/8/docs/api/
Python OJ常用技巧综述
Python语言的简洁众所周知,同时它也具备了很多现代编程语言的新特性如:闭包、Lambda表达式、Functional Programming等。numpy, scipy, sklearn, pandas, matplotlib, ipython, Jupyter Notebook 等等库,让Python在科学计算领域和R语言一样受到越来越多数据科学家的青睐,以至于可以用 R 和 Python 将数据科学家分为两类。 R更多的是数学和统计出身的数据科学家,Python更多的是计算机科学出身的数据科学家。当今很火热的深度学习框架 TensorFlow 也采用Python,据说Google的很多工程师日常快速开发原型也采用Python。由此可见Python的流行程度。
参考列表:
- https://docs.python.org/2/
- https://docs.python.org/3/
- 《Data Structures and Algorithms in Python》
- 《Python Algorithms》
- 《Functional Python Programming》
- OJ常用技巧-综述
- OJ常用技巧-排序
- 常用OJ
- 常用OJ
- 手机常用Codec综述(转贴)
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 特征选择常用算法综述
- 前端切图PS技能
- EditText不能获取文本问题
- ES6新属性笔记
- hdu 2196 Computer(树形DP)
- Web存储storage、cookie的综合使用
- OJ常用技巧-综述
- java FX 第一个测试
- MATLAB画图-plot-线形、颜色、数据点形状的选择
- xiaoCMS系统分析
- linux常用net命令
- SQL优化:建索引的原则
- virtualbox里面,给ubuntu设置共享文件夹
- Centos7 Lamp环境搭建
- ES6新属性笔记_0