首页 > 编程语言 >做leetcode算法题的一些感受

做leetcode算法题的一些感受

时间:2023-06-23 12:45:17浏览次数:44  
标签:10 感受 代码 能力 算法 思考 leetcode

leetcode题目做了34道了,写下目前的感受,不一定对,需要经常修改内容。

1、代码是怎么写出来的?不是一下子写出来的,是逐步填充,逐步具体的。一句话,写代码也要看到历史和现状,现状不是突然出现的,是有发展历史的。不是从1直接就到10了,而是从1->2->3,逐步递进,最后到10。写代码总要写第一行,这个第一行,就是思考的起点,接下来就是优化、是细化,就是考察思考问题的连续性和灵活性的时候了。什么叫连续性,就是思考一个问题的时候啊,能提出关联问题,能自如地在这些问题中切换;什么叫灵活性,就是思考一个问题的时候啊,一个思路走不通,就走另一个思路。我的思考问题的能力还是差,会被厉害的人碾压,这种被碾压感经常出现,很不好。

2、怎么给变量、方法、类、包取名字?这个问题是一个关键问题,关系到我对代码的理解是否清晰,深入。名字取不好,代码也不可能写好。

3、坚持名实一致。一旦命名完成,就要严格按照命名的含义使用。不要中途改变这个变量的含义,用他干别的事,否则会含义错乱,诱使自己犯错误。如果需要一个变量做别的事,就开一个新变量,不要用旧的。

  我在编码中经常犯名实不一致的错误,这是否说明,在工作和生活中,我的思想也是严重脱离实际,会按照自己的主观意愿去无意识地歪曲事实,只是没有计算机告诉我错误了。如果是真的,这很危险。

4、代码能力可以分解为哪些能力?

1)调查能力。就是构思算法的时候,先举他七八十个例子,覆盖所有典型案例,研究这些案例的特性和共性。

2)研究能力。主要就是抽象能力。抽象过程中需要做辨析,把不同的事物、不同的情况区分出来,区别对待处理。把汉字抽象成部首,把部首抽象成笔画,这就是一个典型的逐步抽象的过程,抽象层级越来越高。

3)使用编程语言描述并实现的能力。主要是是否熟悉这个编程语言, 是否熟悉各种流程控制语句及其组合。

5、要自顶向下和自底向上两种思考方式结合起来思考,但是要注意,不能随意跨层级思考,在高层级思考的时候,不要去思考低层级的问题,比如不思考细节怎样实现。要意识到自己现在是在哪个层级思考的。

6、要熟练。要能在10(?)分钟内写出常见算法代码,无bug。无他,只是脑子熟悉了,手熟悉了。能力自然就上来了。

7、算法能力是基础,是第一步。算法能力不行,不可能成为一个优秀的码农。强悍的代码能力不是一天两天获得的,需要大量的联系,勤奋的总结,谦虚的态度。就使用Leetcode来练习吧,按专题练,练到1000道题目,等到练习时长达到两年半,啥问题都没有了。要像狼一样,像渴了想喝水饿了想吃饭一样地吸收知识,提高代码能力。

8、写一个方法的时候,要搞明白这个方法的输入、输出,方法的作用。把注释写起来,不怕多,就怕错。同样的,一个代码块的功能也要定义清楚,如果不清楚,很可能在打代码的时候,缩小或者扩大了这个代码块的功能,搞出问题来。

9、如果一个算法写的特别复杂,不要再写了,肯定是错了,思路错或者别的错误。

10、怎样做leetcode题目?第一遍:20分钟读题,调查,研究,写代码。20分钟内写不出来,就先找到我为什么写不出来,是思路问题,实现问题还是别的什么问题。然后看别人怎么做的,理解,记下来。

  第二遍:马上自己写,提交。这一遍很可能还会出问题。

  第三遍:优化。能不能有别的思路,消耗的时间和空间还能不能更少点?能不能beat更多的人?

11、接收器、迭代器、分发器、处理器、**器,这些词汇能有效地描述代码断的功能。

12、//todo

标签:10,感受,代码,能力,算法,思考,leetcode
From: https://www.cnblogs.com/feimingdi/p/17498941.html

相关文章

  • Python 算法之冒泡排序
    Python算法之冒泡排序冒泡排序冒泡排序算法的原理如下:(从后往前)1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一......
  • Python 算法之二分查找
    Python算法之二分查找二分查找二分查找又称折半查找优点是比较次数少,查找速度快,平均性能好缺点是要求待查表为有序表,且插入删除困难折半查找方法适用于不经常变动而查找频繁的有序列表。猜数字游戏1、生成一个有序列表2、用户猜测某个数字是否在列表中代码#!/usr......
  • ML、DL、NLP面试常考知识点、代码、算法理论基础汇总分享
        此项目是机器学习(MachineLearning)、深度学习(DeepLearning)、NLP面试中常考到的知识点和代码实现,也是作为一个算法工程师必会的理论基础知识。项目介绍    •此项目是机器学习、NLP面试中常考到的知识点和代码实现,也是作为一个算法工程师必会的理论基础知识。  ......
  • 大数据处理新-分布式算法与优化
    本书介绍    计算机是一种机器,可以被指示执行一系列算术或逻辑运算,以执行特定的任务,如解决特定的问题。计算机程序是计算机执行的指令的集合。一个程序解决一个特定问题的基本方法被称为算法,这个问题可以由一系列定义明确、可由计算机实现的指令来确定。因此,算法可以被看作是一......
  • 速递-因果推理原理:基础与学习算法
            推荐一本详细讲解因果推理原理的新书,本书2020年初刚刚Release出来,需要的朋友自取。对该领域理解有限,翻译不太准确,望见谅。  bshq:2020年新书速递-《因果推理原理:基础与学习算法》分享前沿概述    因果关系推理(Causality)是一个非常有趣的研究课题。最近才开......
  • 斯坦福大学新课CS224W-2019-图网络机器学习算法-视频及ppt资源分享
    课程内容介绍   网络是建模复杂的社会,技术和生物系统的基本工具。结合在线社交网络的出现和生物科学中大规模数据的可用性,本课程着重分析大型网络,这些大型网络提出了一些计算,算法和建模方面的挑战。通过学习他们的底层网络结构和连接关系,向学生介绍了机器学习技术和数据挖掘工......
  • 2020年新书速递-《因果推理原理:基础与学习算法》分享
            推荐一本详细讲解因果推理原理的新书,本书2020年初刚刚Release出来,需要的朋友自取。对该领域理解有限,翻译不太准确,望见谅。     文末附本书下载pdf地址。 前沿概述    因果关系推理(Causality)是一个非常有趣的研究课题。最近才开始研究隐藏在其背后的数学......
  • 深度强化学习必读-决策算法综述
    本书介绍    本书广泛介绍了不确定条件下最优决策的算法。涵盖了与决策相关的各种主题,介绍了基本的数学问题公式和解决它们的算法。提供图形、例子和练习来介绍各种方法背后的几本原理。本书是为高级本科生和研究生以及专业人士准备的。这本书需要一些数学知识,并假设之前接触过......
  • 算法岗必读中文-0天吃掉pyspark实战
    pyspark......
  • 基于DCT变换和ZigZag的图像压缩算法matlab性能仿真,仿真输出不同压缩率与图像质量的关
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要图像压缩是一种广泛应用的技术,它能够在不影响图像质量的前提下,减少图像所占用的存储空间。本文将介绍一种基于离散余弦变换(DiscreteCosineTransform,简称DCT)和ZigZag扫描的图像压缩算法,并探讨不同压缩率与图像质......