├── LeetCode.md └── README.md /LeetCode.md: -------------------------------------------------------------------------------- 1 | #LeetCode总结 2 | 3 | ##链表 4 | 1.单链表反转 5 | 6 | 地址:https://leetcode.com/problems/reverse-linked-list/ 7 | 8 | 题解1: 9 | 10 | ``` 11 | /** 12 | * Definition for singly-linked list. 13 | * struct ListNode { 14 | * int val; 15 | * struct ListNode *next; 16 | * }; 17 | */ 18 | 19 | struct ListNode* reverseList(struct ListNode* head) { 20 | 21 | if(!head || !head->next) return head; 22 | struct ListNode* p = head; 23 | struct ListNode* q = head->next; 24 | struct ListNode* r = NULL; 25 | 26 | while(q != NULL){ 27 | p->next = r; 28 | r = p; 29 | p = q; 30 | q = q->next; 31 | } 32 | p->next = r; 33 | return p; 34 | } 35 | 36 | ``` 37 | 题解2: 38 | 39 | ``` 40 | struct ListNode* reverseList(struct ListNode* head) { 41 | struct ListNode* middle; 42 | struct ListNode* foot; 43 | middle = NULL; 44 | 45 | while(head){ 46 | foot = middle; 47 | middle = head; 48 | head = head->next; 49 | middle->next = foot; 50 | } 51 | 52 | return middle; 53 | } 54 | ``` -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Learn-OpenGL 2 | 关于OpenGL的学习资料 3 | 4 | ## 语言相关的书籍: 5 | ### C语言 6 | C语言我觉得是最值得任何程序员花大量的时间学习的语言.原因是: 7 | 8 | 1. c语言不在可能随着时间的变化而产生太大的变动,最多也就是一点修修补补.可以说是一朝学会,终生受用 9 | 2. c语言是简约的,就32个关键字,但是基本上现在任何语言都直接或者间接的构建在c语言之上. 10 | 3. Linux,Windows(C/C++),Unix都是用c语言实现的. 11 | 12 | 13 | 书籍名称 | 简介 14 | ------- | ---- 15 | 1. [C程序设计语言](https://book.douban.com/subject/1139336/)(经典书籍) | 传说中的"K&R C",作者是已故的C语言之父Dennis M.Ritchie与贝尔实验室另一位大牛Brian W.Kernighan.作品虽然篇幅很小,但是内容却非常丰富,而且叙述也非常清晰.在StackOverFlow上评价:`这本书简洁易读,会教给你三件事:C 编程语言;如何像程序员一样思考;底层计算模型。` 16 | 2. [C Primer Plus](https://book.douban.com/subject/1240002/)(入门) |一本很经典的入门书籍,内容全面丰富,条理清晰,全面讲述了C语言编程的相关概念和知识. 17 | 3. [C语言程序设计:现代方法](https://book.douban.com/subject/2280547/)(入门) | 被誉为“近10年来最好的一部C语言著作".全书由易而难、循序渐进、螺旋式地讲述C语言,很好地处理了指针和位运算等难点。尤为强调软件工程和现代编程理念,在知识的阐述中突出工业界的最佳实践、实际经验和编程风格,使读者能够合理运用所学. 18 | 4. [C和指针](https://book.douban.com/subject/3012360/) (进阶)| 对C语言来说,最难的概念就是`指针和数组`,还有指向数组的指针和指向指针的指针。C和指针花了大量的篇幅和图示来把这些难懂但重要的概念讲的清清楚楚. 19 | 5. [C专家编程](https://book.douban.com/subject/2377310/)(进阶) |一本很轻松的书籍,它既包含了大量C语言技术细节和编程技巧,也包含了很多有趣的编程轶事,并专门开辟了一章对C++的基础知识进行了介绍. 20 | 6. [C陷阱与缺陷](https://book.douban.com/subject/2778632/)(进阶) | 可以看成是 Effective C.里面展示了使用c语言的各种陷阱与技巧.总之不想被各种bug整死,看这本书就对了. 21 | 22 | 23 | ### C++ 24 | **C++ 11出来之后,能与时俱进的书籍不是很多,推荐书籍变得容易多了** 25 | 26 | 27 | 书籍名称 | 简介 28 | ------- | ---- 29 | 1. [The C++ Programming Language](https://book.douban.com/subject/26857943/)(经典) | C++之父Bjarne Stroustrup的作品,C++最权威且最全面的书籍.最新的书籍已经涵盖C++ 11的内容. 30 | 2. [C++ Primer](https://book.douban.com/subject/25708312/)(经典) | Stanley B. Lippman 是第一个C++的编译器的实现者.这本书完全可以当做参考书或者字典来用,该书既适合初学者,也适合一定经验的程序员. 31 | 3. [Effective C++](https://book.douban.com/subject/5387403/) [More Effective C++](https://book.douban.com/subject/5908727/) [Effective STL](https://book.douban.com/subject/1792179/) | C++进阶和实战书籍,梅耶尔大师的三部曲,这三本书介绍了如何高效的使用C++和STL.该书最早使用了条款的形式介绍语言的特性和最佳实践方案.对后来很多此类程序书籍产生了巨大的影响. 32 | 33 | 34 | ## OpenGL书籍: 35 | 36 | 书籍名称 | 简介 37 | ------- | ---- 38 | [OpenGL ES 3.0编程指南](https://book.douban.com/subject/26414014/) | 这个应该算是OpenGL最好的书籍了.OpenGL技术专家亲笔撰写,全面介绍OpenGL ES 3.0的各种特性及新增功能 39 | [OpenGL编程指南(原书第8版)](https://book.douban.com/subject/26220248/) |传说中的"红宝书",不过升级之后,封面变白了.内容全面而深入,用清晰易懂的语言阐释OpenGL的各种技术细节、方法和最佳实践,帮助程序员走上OpenGL专家之路 40 | [OpenGL超级宝典](https://book.douban.com/subject/5273949/) |传说中蓝宝书,里面的例子十分详细.入门必备 41 | [OpenGL 4.0 Shading Language Cookbook](https://book.douban.com/subject/6539319/) | GLSL的菜谱书籍,仅仅是一些初级的东西 42 | [OpenGL着色语言](https://book.douban.com/subject/1911849/) | 需要具有一定的数学知识,适合有兴趣编写着色器的应用程序开发人员,可作为GLSL开发者的参考手册 43 | [相关的电子书合集](http://vdisk.weibo.com/s/uwBBteN5RuOs4) | 上面介绍的书籍都有,还有一些其他的经典书籍.不过都是英文的 44 | 45 | ## OpenGL网站: 46 | 47 | 网站名称 | 简介 48 | ------- | ---- 49 | [Learn OpenGL ES](https://learnopengl.com/) | 这是本人最推荐的教程,内容及其的细致从初级到高级的应用都有。 50 | [Learn OpenGL ES中文版](https://learnopengl-cn.github.io/) | 上面的中文版本,英语不是很好的同学可以先学习这个。 51 | [open.gl](https://open.gl/) | 很多人都推荐这个作为入门教程,而且该教程托管在github上,里面的教程有中文版的. 52 | [Tutorials for modern OpenGL (3.3+)](http://www.opengl-tutorial.org/zh-hans/)|与时俱进的教程,各国语言的都有 53 | [cs291 video downloads](https://www.udacity.com/wiki/cs291/downloads) | Udacity的公开课,很好的视频教程 54 | [OpenGLStepBySetp](http://ogldev.atspace.co.uk/index.html)| 跟着例子,一步一步学OpenGL,简单实用. 55 | [OpenGL ES for iOS](https://developer.apple.com/opengl-es/)|苹果官网的opengl教程,有文档,有例子. 56 | [信厚的独立博客](https://jiangxh1992.github.io/)|香港大学的高材生,里面关于opengl系列文章比较好,还有VR,Unity 3d 57 | [个人blog,渲染](http://zhangwenli.com/blog/) |(文章比较杂,里面卡通渲染文章比较不错) 58 | [iOS平台的OpenGlES教程](http://www.jianshu.com/nb/2135411)|(一般,不过关于iOS的OpenGL编程实在找不到更好的了) 59 | [open.gl](https://open.gl/) | 很多人都推荐这个作为入门教程,而且该教程托管在github上,里面的教程有中文版的. 60 | [iOS平台的OpenGL ES教程](http://www.gltech.win/categories/%E5%AD%A6%E4%B9%A0OpenGLES%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0.html) | 很好的教程,不但有OpenGL ES教程,还有WebGL ,Scene Kit 的教程 61 | [片段着色器效果展示网站](http://haxiomic.github.io/webgl-workshop/editor//index.html) | 可以在线编辑Fragment,并且实时展示 62 | --------------------------------------------------------------------------------