初刷LeetCode的感受
自从上个月进入实验室的云安全项目组后,因为要接触到实际的代码,在实验室博士的建议下我们项目组的硕士开始刷LeetCode练习编程能力,保持每周抽空刷几道算法题。虽然刷的不多,到现在一共只刷了不到30题,但在刷题的过程中还是有很多感触的。
实验室的博士建议我们按照题目的难易顺序循序渐进由易到难来刷,我也就照做了。因为前段时间在系统地学Python语言,所以我主要用的是Python语言来做,有的题目也采用了C/C++、Java甚至C#多种语言来尝试。在刷题的过程中,总结了自己的一些问题:
1. 对于数据结构类的题目(例如链表、二叉树等),其实是很简单的题目,但因为很久没有接触数据结构的代码,没有信心去尝试。以后要客服这种畏难的心理,应该在刷题的过程中做到边做边学。
2. 对于带有字符串或者数组操作的题目,用类C语言尝试总是会遇到困难,也产生了畏难心理,在这方面还要多看看书来加强。
3. 有的题目乍一看很简单,但用一般的算法很容易超时(特别是对于Python这种执行速度慢的解释型语言),有的题目甚至要求了不能用额外的空间、不能使用循环或者对于时间复杂度有要求(O(n)甚至O(1))。看来还要提高算法优化的水平,同时数学能力也非常重要。
4. 算法类的题目总体来说还是比较有难度,题目出的也很巧妙,有时候需要进行一番头脑风暴才能有一些头绪,以后还要多刷题保持编程的感觉。
5. 英文快速阅读水平还要再加强,因为题目都是英文的,有些比较长的题目不太容易看懂。
针对自己的这些问题,接下来要进行有针对性的补充学习。因为最近临近期末,所以打算利用寒假好好恶补。目前主要是要提高数据结构与算法方面的能力(手上关于算法和数据结构的书太多了),同时还要继续学习Python语言(廖雪峰教程+实际项目)、Linux系统(鸟哥的私房菜+实际操作)以及与项目相关的OpenStack云平台上的开发,再深入地学习Java或者C++其中的一门语言。有机会的话还想接触一下机器学习,手里正好有一本用Python语言写的《机器学习实战》。
要成为一名合格的程序猿需要学的东西太多,不光是知识的广度,更重要的是深度的积累。未来任重而道远啊!
附上到目前为止所刷过的LeetCode题:
| # | Title | Acceptance | Difficulty |
| 326 | Power of Three | 39.1% | Easy |
| 1 | Two Sum | 29.2% | Easy |
| 169 | Majority Element | 44.5% | Easy |
| 206 | Reverse Linked List | 43.1% | Easy |
| 136 | Single Number | 52.5% | Easy |
| 231 | Power of Two | 39.1% | Easy |
| 415 | Add Strings | 41.4% | Easy |
| 242 | Valid Anagram | 44.5% | Easy |
| 441 | Arranging Coins | 36.3% | Easy |
| 349 | Intersection of Two Arrays | 45.3% | Easy |
| 258 | Add Digits | 50.0% | Easy |
| 66 | Plus One | 36.6% | Easy |
| 292 | Nim Game | 54.5% | Easy |
| 171 | Excel Sheet Column Number | 44.9% | Easy |
| 342 | Power of Four | 37.1% | Easy |
| 434 | Number of Segments in a String | 40.0% | Easy |
| 344 | Reverse String | 57.4% | Easy |
| 345 | Reverse Vowels of a String | 37.0% | Easy |
| 27 | Remove Element | 36.6% | Easy |
| 237 | Delete Node in a Linked List | 45.2% | Easy |
| 371 | Sum of Two Integers | 51.5% | Easy |
| 13 | Roman to Integer | 43.1% | Easy |
| 383 | Ransom Note | 45.8% | Easy |
| 9 | Palindrome Number | 33.9% | Easy |
| 389 | Find the Difference | 50.2% | Easy |
| 412 | Fizz Buzz | 58.1% | Easy |
| 283 | Move Zeroes | 47.4% | Easy |
初刷LeetCode的感受的更多相关文章
- 刷leetcode是什么样的体验?【转】
转自:https://www.zhihu.com/question/32322023 刷leetcode是什么样的体验? https://leetcode.com/ 1 条评论 默认排序 按时间排 ...
- 推荐一种通过刷leetcode来增强技术功底的方法
背景 如果前人认为这个一种学习提高或者检验能力的成功实践.而自己目前又没有更好的方法,那就不妨试一试. 而不管作为面试官还是被面试者,编码题最近越来越流行.而两种角色都需要思考的问题是希望考察什么能力 ...
- 刷LeetCode的正确姿势——第1、125题
最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...
- 用JavaScript刷LeetCode的正确姿势
虽然很多人都觉得前端算法弱,但其实 JavaScript 也可以刷题啊!最近两个月断断续续刷完了 leetcode 前 200 的 middle + hard ,总结了一些刷题常用的模板代码.走过路过 ...
- 工具推荐--刷LeetCode的神器
本文首发于微信公众号:[坂本先生],文章地址为: https://mp.weixin.qq.com/s/vHv5hO8nils_g2VSKwu1Cg如有转载请标明出处 今天给大家安利一款快速刷Leet ...
- 【一起刷LeetCode】整数反转
前言&絮叨 别人都忙着参加年会晒奖品,我却忙着写代码.每逢年底都要安排几个紧急项目,我什么时候能摆脱这种宿命. 在忙也不能忘记刷LeetCode,毛毛向前冲!!! 题目描述 给出一个 32 位 ...
- 从心出发-刷leetcode写给5年后的自己
而立之年终未立,不惑而年犹存惑!这或许就是所谓的中年危机吧! 自认为是一个"勤奋"的人,又"未有寸功",天天碌碌,不知何为. "常立志"而未 ...
- GitHub 热点速览 Vol.18:刷 LeetCode 的正确姿势
作者:HelloGitHub-小鱼干 摘要:找对路子,事半功倍,正如本周 GitHub Trending #刷 LeetCode# 主题想表达的那般,正确的学习姿势方能让人走得更远,走进大厂
- 刷LeetCode的简易姿势
近期抽空刷了刷LeetCode,算是补补课. 由于不是很习惯直接在网页上Coding&Debug,所以还是在本地环境下进行编码调试,觉得基本OK后再在网页上提交. 主要采用Python3进行提 ...
随机推荐
- 【jQuery小实例】---2自定义动画
---本系列文章所用使用js均可在本博客文件中找到 本节用jQuery完一个简易的动画效果,一个小驴跑跑的效果.和一个类似qq面板效果.大致也分为三步:添加jquery-1.8.3.js文件.这个是不 ...
- ZOJ Problem Set - 1115 Digital Roots
水题记录: 注:此题题目并没有限定数值的大小,所以要用字符串进行处理 #include <stdio.h> #include <string.h> int main() { ] ...
- Equals和ReferenceEquals
稍微分析下一下两个方法的区别: public static bool Equals(object objA, object objB); public static bool ReferenceEqu ...
- Centos 7 开启端口
CentOS 7 默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的 CentOS 7 采用了 firewalld 防火墙 如要查询是否开启80端口则: 1 ...
- springMVC学习笔记(一)-----springMVC原理
一.什么是springmvc springMVC是spring框架的一个模块,springMVC和spring无需通过中间整合层进行开发. springMVC是一个基于mvc的web框架. Sprin ...
- 20 个看起来很棒的 Web UI 工具包
程序员们比设计师更需要这些 UI 方面的内容: 1. Mini Reminders Mini Reminders 2. Transluscent UI elements Transluscent UI ...
- Android使用ViewPager实现左右循环滑动及轮播效果
边界的时候会看到一个不能翻页的动画,可能影响用户体验.此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其 ...
- 图解SQL的Join(转)
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
- svg.js教程及使用手册详解(一)
做毕设的时候,因为要使用到画图和自定义动画,所以接触到了SVG.网上关于SVG和Canvas的对比很多,具体的辨析这里就不赘言.网上关于SVG的所谓教程基本上都是SVG本身,但是却没有一个针对svg. ...
- 使用CruiseControl.Net全面实现持续集成
持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文的主要目的是实战CruiseControl.Net,用它来全 ...