zoukankan      html  css  js  c++  java
  • 游LeetCode一月之闲谈

    今年的2月比往常更长,不是因为比往年多了一天,而是被病毒隔离在家的日子显得十分漫长。如果再不给自己找点事情做的话,且不论身体方面的健康状况,精神方面可能也会有些隐忧。做为一名工程师,适时地读上几本平日可能没时间阅读的好书,应当是不错的选项。而除此之外,也可以做点有趣的算法题目以做消遣。

    当今,LeetCode这个网站已经广为人知。打算刷算法题时,它几乎是必然的选择。当然国外还有CodeWar,国内也有牛客网这样的备选。不过由于几年前也曾在LeetCode上玩过几题的关系,当再次有刷题想法的时候,还是回归到那熟悉而又陌生的地方。

    最开始的时候可能也只打算投入几天的时间去重温下做题的感觉,但随着隔离时间的延长,且年内计划也制订了认真研习算法这一项,不知不觉每日持续做题的日子已经过去一个月了。

    迄今为止,简单难度的题目做了68道,中等难度的题目做了42道,困难难度的2道,总计112道。

    先刷的是简单的题目,闲来一天可以做个5,6题,再之后开始做中等难度的,每日坚持做3题,至于困难的题目,则是无事可做时想尝试下挑战的。当然这样的结果是必然查找功略才能有些线索。

    LeetCode经过数年的发展,已经从最初的触手可及的100多道题,变成为拥有1364题的真正意义上的题库,这个数字记录截止于2020/2/29,之后肯定还会增加。(在做题的时候就发现其偷偷地又多了几题)

    我刷题的方式不是如他人一般选取其前几百题做为开端,而是采用主题突破的策略。

    在LeetCode网页的右侧有各种主题的汇总。

    • 数组 226
    • 动态规化 185
    • 数学 171
    • 字符串 159
    • 树 128
    • 哈希表 122
    • 深度优先搜索 117
    • 二分查找 84
    • 贪心算法 73
    • 广度优先算法 65
    • 双指针 60
    • 栈 54
    • 回溯算法 53
    • 设计 46
    • 位运算 44
    • 排序 43
    • 图 40
    • 链表 37
    • 堆 34
    • 并查集 29
    • 滑动窗口 20
    • 分冶算法 19
    • 字典树 17
    • 递归 15
    • 线段树 12
    • 有序字典 10
    • 队列 9
    • 极小极大算法 8
    • 二叉索引树 6
    • 行扫描算法 6
    • 随机算法 6
    • 拓扑排序 6
    • 迷题 5
    • 几何算法 5
    • 二叉查找树 2
    • 拒绝采样 2
    • 水库采样 2
    • 旋转哈希 2
    • 记忆 1
    • 后缀数组 1

    可以看到在各个主题之中,渉及数组的题目占比最多。稍做思考,不难想出这一结果也合乎情理,毕竟数组是最基本的数据结构,如果不把其弄清楚,想明白,更没有能力去触及其它算法与数据结构的内容了。

    于是顺乎其理,我以数组这一主题开始了算法新旅程。刚入手时其题目数还是224道,结果两周后又增加了2道,目前还未有进一步的更新,所以并不清楚LeetCode题库更新的频率。

    在刷题的时候会发现,一道题目往往不仅牵扯单一主题,还会与其它主题相关,做这类题目时获得的收获往往也更多。同时网站上确实有功能可以将题目所附的标签显示出来,建议最初时不要打开这一选项,因为知道了题目的特性,可能也就明白了解题的思路,但在刚开始答题的阶段,这样的提示并不有利于思考,只有在自身经过一番推敲琢磨之后,再查看这些信息,才能获得更佳体验。

    当然,做这些题目,尤其是中等以上难度的题目,既使花上几个小时,解不出题,也是正常的情况,本人便是一例。因为之前没有仔细在算法方面打磨过自己,对算法题的生疏也是在所难免。这并非要给自己找一个推脱的借口,算法,就像其它有价值的能力一样必须要经过相当时间的刻意练习,才可以达成某种程度的熟练度。

    种一棵树最好的时间是十年前,其次是现在。既然十年前自己没有努力提升算法能力,那么到了今日,还有这个念想的话,只有迈步前行一个方法而已。

    这里只是些闲谈,并不会详细记录每道题的解法,在刷完数组主题所有题目后应该会有一篇比较详实的记录,这里又定了个小计划。再之后将会聚焦于LeetCode中100道最受喜爱的题目,完成后继续做总结,然后会是动态规划主题,还是需要总结,如此这般持续进行,虽然期望在一年内完成所有题目,但估计不太可行,不如退而求其次,能够养成经常做算法题目的习惯,反而会是更好的收获。

  • 相关阅读:
    android关闭屏幕时不锁屏实现
    android Seekbar 拖动按钮显示不全问题
    webview在compileSdkVersion 大于等于23 android6.0以上系统执行js代码异常,但是在compileSdkVersion小于23 android6.0以下系统却执行正常问题
    Seekbar扩大点击区域
    android .9背景图作为TextView背景时文字无法居中问题
    android 使用系统级别权限
    自定义ViewPager,避免左右滑动时与水平滑动控件冲突
    ListVIew中包含水平滑动控件,左右滑动时容易触发上下滑动
    Android输入法挤乱布局问题
    android WebView缩放时卡顿问题
  • 原文地址:https://www.cnblogs.com/kenwoo/p/12384286.html
Copyright © 2011-2022 走看看