【学习心得】算法刷题心得分享

一、为什么要刷题?

  1. 提升编程能力,强化对数据结构的理解,熟练掌握常用的算法等
  2. 为竞赛、考试做准备
  3. 找实习、找工作需要(上机考试+面试手撕代码)
  4. 提升自信心,放松一下

二、刷题前应该有哪些知识储备?

(1)基本掌握数据结构和常用算法

① 基本数据结构

  • 栈:后进先出(LIFO)的数据结构,用于存储元素,如函数调用栈。
  • 队列:先进先出(FIFO)的数据结构,用于按顺序处理元素,如打印任务队列。
  • 链表:通过节点连接元素,可动态增删元素,适用于非连续内存空间。
  • 树:节点间存在父子关系的层次结构,如二叉树、搜索树等。
  • 堆:特殊的树形数据结构,通常实现为完全二叉树,用于实现优先队列。

② 常用算法

  • 贪婪算法:在每一步选择中都采取最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。
  • 动态规划:通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。
  • 分治算法:将原问题分解为若干个子问题,递归地求解子问题,并将子问题的解合并起来得到原问题的解。
  • 回溯算法:通过探索所有可能的候选解来找出所有的解,如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会通过在上一步进行一些修改来丢弃该解。
  • 分支限界:与回溯算法类似,但加入了剪枝操作,即在搜索过程中根据某种评估函数舍弃一些不可能得到最优解的分支,提高搜索效率。

(2)懂得如何入手进行算法设计与分析

  • 按照要求设计对应可以完成任务的算法
  • 算法复杂度分析

三、作为一名小白如何刷题?

(1)刷leetcode中的题目

① 目的:建立扎实的coding能力

② 方法

  1. 掌握一门基本的编程语言
  2. 按照特定模块进行系统性刷题(千万不要简单按照esay/mid/hard的顺序随机刷题)
  3. 具体按照哪一种模块的顺序刷题可以参考 https://www.zhihu.com/question/36738189
  4. 必须要反复刷题,做到一题多解(分析每一种解法的复杂度),而且不能只盯着高频题目
  5. 具体刷题:一看、二抄、三改、四写
  6. 现在leetcode上面有上千道题目,每个部分一定要找有代表性的题目去做,而且在刷题过程中会用模版去套用

(2)刷《剑指offer》中的题目

① 目的:建立求职面试的解题思路

② 方法

  1. 建议刷三遍
  2. 第一遍:不需要死磕,但是要完全弄懂题目,必须看题目的分析
  3. 第二遍:进一步熟悉题目,对一道题的各种变形也可以做出
  4. 第三遍:对于这不到100道题和一些相应的变形已是特别熟练的状态,上机编程没有问题,手撕代码也没问题

(3)可能遇到的问题与解决方案

① 可能遇到的问题

刷过的题目老忘记,刷题的速度很慢,坚持不下来

② 建议的解决方案

  1. 及时复习,反复刷题,与人分享,以及做笔记
  2. 制定计划,分解计划,快速刷题(为了节约时间,5分钟没有思路就不要浪费时间了,明确认知“你是为了通过面试”,理解不了的先背下来)
  3. 为自己制定奖惩措施,或者组队刷题

四、资料推荐

(1)书籍

  • 《大话数据结构》:用通俗易懂的方式介绍数据结构,适合初学者。
  • 《啊哈!算法》:通过生动的例子和故事讲解算法,增加学习乐趣。
  • 《图解算法》:通过图解的方式直观展示算法的执行过程,易于理解。
  • 《算法竞赛入门经典》:针对算法竞赛的入门书籍,适合有一定基础的读者。
  • 《hello算法》:深入浅出地介绍算法,适合对算法感兴趣的读者。

(2)课程

  • 中国大学MOOC《数据结构》(陈越):陈越老师主讲的经典数据结构课程,内容全面且深入。
  • 程序设计基础(C&C++)(戴波):涵盖C和C++语言基础及程序设计思想,为学习数据结构打下坚实基础。

(3)刷题网站

  • LeetCode:提供大量编程题目和在线评测,适合算法练习和面试准备。
  • 牛客网:不仅有在线编程题目,还有面试经验分享和模拟面试等功能。
  • PAT(Programming Ability Test):浙江大学推出的在线编程能力测试平台,题目难度较高。
  • 各大高校的OJ系统(如北大、浙大等):提供大量题目和在线评测,部分题目难度较高,适合挑战。
  • Codeforces:全球知名的编程竞赛平台,提供大量题目和在线比赛,适合提升算法水平。

【腾讯文档】刷题分享icon-default.png?t=N7T8https://docs.qq.com/mind/DY3JhS0VQaW12b3hL?mode=mind

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/681206.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web 网页性能优化

Web 网页性能及性能优化 一、Web 性能 Web 性能是 Web 开发的一个重要方面,侧重于网页加载速度以及对用户输入的响应速度 通过优化网站来改善性能,可以在为用户提供更好的体验 网页性能既广泛又非常深入 1. 为什么性能这么重要? 1. 性能…

Spring Boot前后端简单集成MinIo开发

Spring Boot前后端简单集成MinIo开发 源码地址重要配置和代码MinIO配置核心代码 最终效果 源码地址 minioStudy 重要配置和代码 MinIO配置 pom文件引入依赖 <!-- minio --> <dependency><groupId>io.minio</groupId><artifactId>minio</ar…

驱鸟设备之机场专用电子炮驱鸟器

近年来&#xff0c;随着全球环保意识的显著增强&#xff0c;鸟类种群数量呈现稳步上升的趋势。然而&#xff0c;这一积极的生态变化也带来了一系列挑战&#xff0c;其中之一就是鸟击事件的概率显著增加。在这种情况下&#xff0c;采取有效的鸟害防治措施显得尤为重要。 合理利用…

【Centos7】CentOS 7下的PyTorch安装策略:高效实践指南

【Centos7】CentOS 7下的PyTorch安装策略&#xff1a;高效实践指南 大家好 我是寸铁&#x1f44a; 总结了一篇【Centos7】CentOS 7下的PyTorch安装策略&#xff1a;高效实践指南✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 由于需要跑深度学习&#xff0c;要用到pytorch&a…

伦敦金交易规则赶快学起来!

今年美联储开启降息的时间窗口也许就在下半年&#xff0c;黄金价格有望再次迎来趋势性的上涨&#xff0c;投资者进入黄金市场可谓恰逢其时。目前市场上主流的黄金投资方式是电子盘交易&#xff0c;当中又以国际市场上的伦敦金&#xff0c;在全球范围最为普及。 炒卖伦敦金&…

计算机网络学习记录 运输层 Day5

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 &#x1f604; (^ ~ ^) 想看更多 那就点个关注吧 我…

Transformer系列:图文详解KV-Cache,解码器推理加速优化

前言 KV-Cache是一种加速Transformer推理的策略&#xff0c;几乎所有自回归模型都内置了KV-Cache&#xff0c;理解KV-Cache有助于更深刻地认识Transformer中注意力机制的工作方式。 自回归推理过程知识准备 自回归模型采用shift-right的训练方式&#xff0c;用前文预测下一个…

uniapp内置的button组件的问题

问题描述 由于想要使用uniapp内置button组件的开放能力&#xff0c;所以就直接使用了button&#xff0c;但是他本身带着边框&#xff0c;而且使用 border&#xff1a;none&#xff1b;是没有效果的。 问题图片 解决方案 button::after {border: none;} 正确样式 此时的分享…

大话C语言:第22篇 字符数组

1 字符数组概述 C语言中没有字符串这种数据类型&#xff0c;可以通过char的数组来替代。数字0(和字符 \0 等价)结尾的char数组就是一个字符串&#xff0c;字符串是一种特殊的char的数组。 #include <stdio.h>int main() {char c1[] {c, , p, r, o, g}; // 普通字符数…

算法学习笔记——时间复杂度和空间复杂度

时间复杂度和空间复杂度 常数操作&#xff1a; 固定时间的操作&#xff0c;执行时间和数据量无关 位运算 > 算数运算 > 寻址 > 哈希运算&#xff0c;都是常数操作&#xff0c;哈希运算操作时间最慢 链表的get(i)方法不是常数操作&#xff0c;因为链表不是连续的存储…

idea如何根据路径快速在项目中快速打卡该页面

在idea项目中使用快捷键shift根据路径快速找到该文件并打卡 双击shift(连续按两下shift) -粘贴文件路径-鼠标左键点击选中跳转的路径 自动进入该路径页面 例如&#xff1a;我的实例路径为src/views/user/govType.vue 输入src/views/user/govType或加vue后缀src/views/user/go…

实验八、地址解析协议《计算机网络》

水逆退散&#xff0c;学业进步&#xff0c;祝我们都好&#xff0c;不止在夏天。 目录 一、实验目的 二、实验内容 &#xff08;1&#xff09;预备知识 &#xff08;2&#xff09;实验步骤 三、实验小结 一、实验目的 完成本练习之后&#xff0c;您应该能够确定给定 IP 地…

机器学习多场景实战

机器学习已不再局限于理论探讨&#xff0c;而是广泛渗透到我们生活的方方面面&#xff0c;成为解决复杂问题、优化决策过程的强有力工具。从智能推荐系统个性化推送你可能喜爱的电影和商品&#xff0c;到金融风控领域精准识别欺诈交易&#xff1b;每一个应用场景都是机器学习技…

15 - 有趣的电影(高频 SQL 50 题基础版)

15 - 有趣的电影 select* from cinema wheredescription!boring and id%2!0 order by rating desc;

医用腕带朔源用的条形码与二维码如何选择

在医疗环境中的医用腕带作为患者身份识别和管理的重要工具&#xff0c;做为条形码和二维码腕带上的溯源技术&#xff0c;更是为患者信息快速获取、准确传递的保障&#xff0c;实现更加高效和准确的患者身份识别和管理&#xff0c;这种技术可以大大提高医疗服务的效率和质量&…

v1.2.70-FastJson的AutoType机制研究

v1.2.70-FastJson的AutoType机制研究 最近在对接Alexa亚马逊语音技能&#xff0c;Smart Home Skill Apis时&#xff0c;有一个配置的JSON字符串是这样的&#xff1a; { "capabilityResources": {"friendlyNames": [{"type": "asset",…

如何组织基于Sqlalchemy的项目

在使用 SQLAlchemy 构建项目时&#xff0c;可以遵循一些常用的组织结构和最佳实践&#xff0c;以确保项目清晰、易于维护。下面就是我在构建项目时遇到的一些问题&#xff0c;并做了详细的记录&#xff0c;为了方便大家学习少走一些弯路。 1、问题背景 在基于Sqlalchemy的项目…

python 内置map()函数(高效处理序列数据方法,将函数应用于一个序列的每个元素)(懒加载)

文章目录 深入解析 Python 内置函数 map()函数定义与用法基本示例 map() 与列表推导式比较&#xff08;列表推导式在语法上更加简洁&#xff0c; map() 在某些情况下执行效率更高&#xff09;示例&#xff1a;将数字转化为字符串 map() 结合 lambda 函数使用多个序列结论 深入解…

边缘计算网关助力自动洗车机实现远程状态监测与即时报警

随着城市化进程的加快和人们生活水平的提高&#xff0c;自动洗车机作为一种高效、便捷的洗车设备&#xff0c;在市场上的需求日益增长。然而&#xff0c;自动洗车机作为一种高价值的自动化设备&#xff0c;其运行状态和安全性直接关系到洗车质量和顾客体验&#xff0c;因此对自…

SL4010 40V耐压 300W大功率升压IC 12V5A大功率UPS电源专用

在当今这个信息高速发展的时代&#xff0c;电力稳定已成为企业运营和个人生活的核心需求。UPS&#xff08;不间断电源&#xff09;作为电力的守护者&#xff0c;其性能和质量直接关系到我们的工作和生活能否顺畅进行。今天&#xff0c;我们为您推荐一款高性能的UPS应急电源芯片…