All Projects → Philon → Arts

Philon / Arts

每周一道算法一本书

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Arts

Algorithm
算法和数据结构练习(Leetcode)
Stars: ✭ 148 (-25.63%)
Mutual labels:  algorithm, leetcode
Leetcode Solutions
🏋️ Python / Modern C++ Solutions of All 2111 LeetCode Problems (Weekly Update)
Stars: ✭ 2,787 (+1300.5%)
Mutual labels:  algorithm, leetcode
Leetcode
LeetCode Problems' Solutions
Stars: ✭ 150 (-24.62%)
Mutual labels:  algorithm, leetcode
.codebits
📚 List of resources for Algorithms and Data Structures in Python & other CS topics @2017
Stars: ✭ 144 (-27.64%)
Mutual labels:  algorithm, leetcode
Leetcode
LeetCode solutions, written in python and cpp(LeetCode解题报告,记录自己的leetcode成长之路)
Stars: ✭ 179 (-10.05%)
Mutual labels:  algorithm, leetcode
Leetcode
leetcode刷题
Stars: ✭ 145 (-27.14%)
Mutual labels:  algorithm, leetcode
Leetcode Js
用 JS 刷 LeetCode
Stars: ✭ 165 (-17.09%)
Mutual labels:  algorithm, leetcode
Meta
leetcode javascript/typescript实现
Stars: ✭ 137 (-31.16%)
Mutual labels:  algorithm, leetcode
Leetcode
High-quality LeetCode solutions
Stars: ✭ 178 (-10.55%)
Mutual labels:  algorithm, leetcode
Leetcode Spider
用 node.js 爬你自己的 leetcode 解题源码
Stars: ✭ 176 (-11.56%)
Mutual labels:  algorithm, leetcode
Leetcode Java
leetcode 解题方法 Java 语言描述,包含各种常见解题模板和各个题目出题频率
Stars: ✭ 144 (-27.64%)
Mutual labels:  algorithm, leetcode
Algorithms4 Common
🔥Algorithms, 4th Edition 算法4精华笔记,通俗理解,算法收集与强化。
Stars: ✭ 183 (-8.04%)
Mutual labels:  algorithm, leetcode
Yyw algorithm
💻我的leetcode算法题解,详细的java版本。包括分类题解/周赛题解/剑指OFFER题解
Stars: ✭ 143 (-28.14%)
Mutual labels:  algorithm, leetcode
Algorithm Pattern
算法模板,最科学的刷题方式,最快速的刷题路径,你值得拥有~
Stars: ✭ 12,970 (+6417.59%)
Mutual labels:  algorithm, leetcode
Algorithm
「面试算法练级攻略」 - 「LeetCode题解」 - 「剑指offer题解」
Stars: ✭ 142 (-28.64%)
Mutual labels:  algorithm, leetcode
D.s.a Leet
References and summary for leetcode high-frequency algorithm problems
Stars: ✭ 155 (-22.11%)
Mutual labels:  algorithm, leetcode
Leetcode Sol Res
Clean, Understandable Solutions and Resources for LeetCode Online Judge Algorithm Problems.
Stars: ✭ 1,647 (+727.64%)
Mutual labels:  algorithm, leetcode
Leetcode
❓ My LeetCode solutions, currently written in Javascript
Stars: ✭ 134 (-32.66%)
Mutual labels:  algorithm, leetcode
Leetcode Notes
LeetCode 算法解答
Stars: ✭ 172 (-13.57%)
Mutual labels:  algorithm, leetcode
Js Algorithms
A collection of algorithms written in javascript
Stars: ✭ 182 (-8.54%)
Mutual labels:  algorithm, leetcode

积硅步,至千里 - 我的ARTS

什么是ARTS?

ARTS是由左耳朵耗子在其专栏左耳听风发起的计划,目的是为了有效降低专栏读者群成员数量😂,(我没进过这个群,猜测里面大牛很多怕进去被虐)。先解释下ARTS计划:要求每周必须完成Algorithm一道算法的解析、Review一篇英文文章的阅读、Tip一个知识点的总结、Share一个价值观的分享。

为什么要做ARTS

2016年夏天,本人以1.8米+90公斤的身材成功步入了胖子的行列,想必和许多上班族一样每天要么开车要么公交,电脑前久坐,屁股离开板凳的时候不是去厕所就是去抽烟;想必和许多下班族一样,时不时会考虑个问题:老子特么的是不是改减减肥了;于是想必又和大部分人一样,我一开始制定了一个细致而宏伟的减肥计划,几点起床、几点锻炼、吃什么、喝什么、要瘦到多少斤...然后就没有然后了;最后想必还是和小部分人一样,我来到了健身房,一问价格:嚯~!4000+包年,你们这儿难道还管饭么!所以在金钱的厌恶下,我花了1/4的价格买了一辆永久牌自行车,18kg高碳钢车架流线型设计27级变速三刀式轱辘前后双碟刹,还赠送前置LED灯照亮回家路,for健康、for身材、forever——得不到的永远在骚动。好吧,其实随便了解下就知道这车很一般,不仅如此,为了减肥我甚至连减肥计划都取消了,换成了一句更一般的话:每天骑车上下班。于是就这么每天重复着完成这句话至今,体重76,身高应该没变,而且还意外获得一项技能,周末节假日胡吃海塞一顿duang的胖个两公斤,一到工作日没两天xiu的又瘦回去了,我觉得我的体重应该是进入了一个稳态,所以我这两年貌似就没有刻意节食过!

跨过而立之年,对于程序员这个职业以及行业,多少有点七年之痒,总觉得看不到未来,想换家公司却发现越来越没勇气,再这样下去,我离“老油条”的标签不远了。最近开始尝试跳槽看工作才突然惊醒,就我手上那点伎俩真的快被市场淘汰了。想学些什么又不知从何捡起,当我开始各种“藏书”、“藏视频教程”、“藏代码”的时候发觉这他妈和我的宏伟减肥计划有毛的区别啊,下载那么多资料老子又不会去看!存在硬盘里就是知识了?

拿减肥和职业发展事情来说就是因为我深切的明白这个道理:有付出就有回报,条条大路通罗马但别总想走捷径。这几年过得太安逸了,为了将来不被生活所迫,我需要持续地折磨自己。ARTS在我眼里算不上什么伟大的计划,也许它不够有趣、不够科学、不够有影响力,但那又怎么样呢,只要它被坚持执行,长期见效,这就足够了!既然现在迷茫了,那就带着脑子去做些看似重复无脑的事情,至于能作出什么成绩,就让时间来给我答案吧。

我的ARTS怎么做

耗叔指定的每周任务对我来说还是太模糊了,我要的是在心里默念一遍就能清晰地知道任务计划和目标,所以我对ARTS进行了改造,以便更适用于我:

  • Algorithm 在leetcode做一道算法题,通过提交
  • Review 翻译一篇英文文档(大部分是leetcode算法solution)
  • Tip 总结实现算法过程中学到的知识,写笔记
  • Share 读一本书或专题文章,写读后感

浓缩为一句话就是:每周啃一道算法一本书

本项目介绍

arts项目结构:

algorithm/
  autotest              # 自动测试脚本
  template/             # 算法实现工程模版
  001-two_sum/          # 算法题目
    c/                  # 对应实现语言
    cpp/
    python/
    ruby/
    csharp/
      solution.cs       # 算法实现
      test.cs           # 单元测试
    java/
    ...
  002-add_two_numbers/
  003-xxxx/
  ...
review/               # 英文阅读与翻译
share/                # 读后感分享
tip/                  # 算法和其他技术知识点总结

编程语言

基本上我打算使用leetcode官方提供的所有编程语言来实现算法,但我只会用C语言去真的“实现”,其他语言只是“移植一下”,说白了就是利用熟悉的工具实现陌生的业务,用熟悉的业务掌握陌生的工具。以下是个我目前对“工具”的掌握情况:

编程语言 掌握程度
C ⭐️️️️⭐️️️️⭐️️️️⭐️️️️⭐️️️️
C++ ⭐️️️️⭐️️️️⭐️️️️
C# ⭐️️️️⭐️️️️
GO
Java ⭐️️️️⭐️️️️⭐️️️️
JavaScript ⭐️️️️⭐️️️️⭐️️️️⭐️️️️
Kotlin
Python ⭐️️
Python3
Ruby
Scala
Swift

单元测试

每种语言实现的算法我都会写类似的测试用例,为了避免项目臃肿(毕竟算法才是主角),语言自带单元测试框架的就直接用,不带的就用断言来做,test.xx就负责这个。我日常开发平台是macOS,已经为每种语言搭建好了编译/运行环境,但懒得再去每个语言目录下敲build命令,所以才有了autotest脚本,使用非常简单:

$ ./autotest                # 测试最近修改的一个算法实现
$ ./autotest 001-two_sum    # 测试该算法题的所有语言实现
$ ./autotest 001-two_sum/c  # 测试该算法题的C语言实现

关于review

官方的直译这种事情我肯定不会做,一般来说我写文章都比较喜欢诙谐幽默一点,直译的话太枯燥了,我的原则是先把英文的文档通篇读完读懂后,在用自己的话套上原文框架来做总结式翻译。不过我的英语水平真的很烂,刚开始直接去翻译leetcode的解决方案也是无奈之举,因为这是在我有思路的前提下看英文文档(挑软柿子捏)。

关于tip目录

另外就是知识点,3年前我在leetcode做过2道题,然后就没有然后了,当时也是迷茫心血来潮做的,其实每完成一个算法多少都能总结些算法的核心思想,这就是知识点,而把算法实现“移植”到其他语言,对语言本身的技巧总结,也是知识点,所以我觉得这个目录的文档输出不是什么难事。

关于share目录

我觉得最难的就是这个目录的输出了,都不知道能否坚持下去,以我现在的阅读效率每周读完一本书还是相当困难的,更何况还要写读后感,但不管怎么说,先做吧。要说明一下每周share之所以不分享“价值观”这种东西是以为我自己都没有太高的修为,做的见的不多,真的不知道能分享什么,所以还不如写读后感,也算是一种分享嘛😄

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].