【回眸】剑指offer怎么刷——剑指系列(一)-程序员宅基地

技术标签: 剑指offer做题笔记  算法  

前言

最近有刷算法方面的需要,直接搜出来的学习建议和技巧都太宽泛,而且夹杂着很多广告。借助第二大脑给自己提了一些建议和计划,希望也能帮助到屏幕面前的你!

计划及建议

问:

我需要刷一遍剑指offer ,我是算法小白,请给我一些刷题技巧及建议,助力我达成目标

答:

非常好,您已经确定了目标,这是非常重要的第一步!以下是一些刷题技巧和建议:

  1. 扎实基础:首先,您需要掌握计算机科学的基本知识,如数据结构、算法、时间和空间复杂度等。如果您对这些概念不熟悉,建议您先学习相关课程或书籍。

  2. 刻意练习:刷题需要刻意练习,不要只是看题解,而是要自己动手实现代码。建议您每天坚持刷一定量的题目,并记录自己的进度和解题思路。

  3. 多做变形题:剑指offer中的题目往往有多种变形,因此建议您多做一些变形题,以便更好地掌握算法思想和解题技巧。

  4. 学会总结:每次做完一道题目后,不要急着看题解,而是先尝试自己总结解题思路和方法。这样可以帮助您更好地记忆和理解算法思想。

  5. 寻找优秀资源:在刷题的过程中,建议您寻找一些优秀的资源,如高质量的题解、优秀的博客、视频教程等,以便更好地学习和掌握算法知识。

祝您刷题愉快,早日达成目标!

问:

我需要更详细具体一些的建议

答:

好的,以下是更为具体的建议:

  1. 刷题顺序:建议按照剑指offer书籍中的顺序进行刷题,因为这样可以帮助您逐步掌握算法思想和解题技巧。如果您已经掌握了某些题目,可以跳过这些题目,节省时间。

  2. 多种解法:每道题目都有多种解法,建议您尝试掌握多种解法,并比较它们的时间和空间复杂度。这样可以帮助您更好地理解算法思想和优化解法。

  3. 锻炼思维:刷题不仅可以帮助您掌握算法知识,还可以帮助您锻炼思维能力。建议您在刷题的过程中,尝试自己思考解题思路和方法,不要轻易放弃。

  4. 提高代码质量:刷题不仅要求代码能够正确运行,还要求代码质量高、可读性强。建议您在写代码的过程中,注意代码的可读性、健壮性和复用性。

  5. 每日复习:建议您每天花一些时间复习之前所做过的题目,以便更好地巩固所学知识。同时,也可以帮助您发现之前所犯的错误和不足之处。

  6. 寻找社区支持:在刷题的过程中,可以加入一些算法学习社区,如leetcode、牛客网等,这样可以与其他学习者交流经验、分享解题思路、互相学习和帮助。

希望以上建议能够帮助您更好地进行刷题学习!

问:

不知道从何学起,你说的还是有些不够具体,我希望落实一个2个月的计划,请你精确到每天

答:

好的,以下是一个2个月的刷题计划,每天的具体任务和建议:

第1周:

  • Day 1:学习数据结构和算法基础知识,如数组、链表、栈、队列、树等。
  • Day 2-3:刷剑指offer中的数组和链表相关题目,建议刷10-15道题目。
  • Day 4:复习前几天所学知识,并总结解题思路和方法。
  • Day 5-6:刷剑指offer中的栈和队列相关题目,建议刷10-15道题目。
  • Day 7:复习前几天所学知识,并总结解题思路和方法。

第2周:

  • Day 8:学习二叉树和图相关知识。
  • Day 9-10:刷剑指offer中的二叉树相关题目,建议刷10-15道题目。
  • Day 11:复习前几天所学知识,并总结解题思路和方法。
  • Day 12-13:刷剑指offer中的图相关题目,建议刷10-15道题目。
  • Day 14:复习前几天所学知识,并总结解题思路和方法。

第3周:

  • Day 15:学习动态规划相关知识。
  • Day 16-17:刷剑指offer中的动态规划相关题目,建议刷10-15道题目。
  • Day 18:复习前几天所学知识,并总结解题思路和方法。
  • Day 19-20:刷剑指offer中的字符串相关题目,建议刷10-15道题目。
  • Day 21:复习前几天所学知识,并总结解题思路和方法。

第4周:

  • Day 22:学习排序和查找相关知识。
  • Day 23-24:刷剑指offer中的排序和查找相关题目,建议刷10-15道题目。
  • Day 25:复习前几天所学知识,并总结解题思路和方法。
  • Day 26-27:刷剑指offer中的位运算相关题目,建议刷10-15道题目。
  • Day 28:复习前几天所学知识,并总结解题思路和方法。

第5周:

  • Day 29:学习贪心算法和回溯算法相关知识。
  • Day 30-31:刷剑指offer中的贪心算法相关题目,建议刷10-15道题目。
  • Day 32:复习前几天所学知识,并总结解题思路和方法。
  • Day 33-34:刷剑指offer中的回溯算法相关题目,建议刷10-15道题目。
  • Day 35:复习前几天所学知识,并总结解题思路和方法。

第6周:

  • Day 36:学习高级数据结构和算法相关知识,如红黑树、哈希表、堆等。
  • Day 37-38:刷剑指offer中的高级数据结构相关题目,建议刷10-15道题目。
  • Day 39:复习前几天所学知识,并总结解题思路和方法。
  • Day 40-41:刷剑指offer中的其他算法相关题目,建议刷10-15道题目。
  • Day 42:复习前几天所学知识,并总结解题思路和方法。

第7周:

  • Day 43:复习整个剑指offer书籍中的所有题目,并总结解题思路和方法。
  • Day 44:选择一些之前做过的难度较高的题目进行再次练习,并总结解题思路和方法。
  • Day 45:选择一些leetcode或牛客网上与剑指offer类似的算法题进行练习,并总结解题思路和方法。
  • Day 46:选择一些leetcode或牛客网上与剑指offer类似的面试真题进行练习,并总结解题思路和方法。
  • Day 47:复习前几天所学知识,并总结解题思路和方法。

第8周:

  • Day 48:继续进行leetcode或牛客网上的算法练习,尝试挑战难度更高的题目,并总结解题思路和方法。
  • Day 49:继续进行leetcode或牛客网上的面试真题练习,尝试挑战难度更高的题目,并总结解题思路和方法。
  • Day 50:进行模拟面试,模拟面试过程中遇到的问题进行总结和反思,并记录面试结果及反馈意见。
  • Day 51:根据模拟面试结果进行针对性复习和提高,并记录自己的进步和不足之处。
  • Day 52:复习整个刷题过程中所学到的知识和经验,并制定下一步的学习计划。

以上是一个2个月的详细刷题计划,希望对您有所帮助!

可以看到确实有一套具体的流程,不过可行性还是存疑,暂时先浅刷一下剑指吧

JZ81 调整数组顺序使奇数位于偶数前面(二)

请实现一个时间复杂度为 O(n),空间复杂度为 O(1) 的函数,将一个整数数组中的奇数全部移到偶数前面,保持奇数和奇数、偶数和偶数之间的相对位置不变。数据范围:0≤n≤50000,0≤val≤10000。

输入:
[1,2,3,4]
返回值:
[1,3,2,4]
说明:
[3,1,2,4]或者[3,1,4,2]也是正确答案

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tianbutian_/article/details/131596518

智能推荐

cox回归模型python实现_生存分析Cox回归模型(比例风险模型)的spss操作实例-程序员宅基地

文章浏览阅读1.7k次。一、生存分析基本概念1、事件(Event)指研究中规定的生存研究的终点,在研究开始之前就已经制定好。根据研究性质的不同,事件可以是患者的死亡、疾病的复发、仪器的故障,也可以是下岗工人的再就业等等。2、生存时间(Survival time)指从某一起点到事件发生所经过的时间。生存是一个广义的概念,不仅仅指医学中的存活,也可以是机器出故障前的正常运行时间,或者下岗工人再就业前的待业时间等等。有的时候甚..._cox比例风险回归模型spss

git commit --amend_git commit --amend 之后还要push吗-程序员宅基地

文章浏览阅读144次。使用场景用于修改上次提交,可修改上次提交的commit message信息,也可修改commit 的内容用法上次commit 内容不满意,代码并未合并,需要有改动的地方:修改文件git addgit commit – amendgit push以上修改并不产生新的commit id但是如果修改文件git addgit commit “”git push此办法会产生新的commit id,合并的人需要将两次commit id合并..._git commit --amend 之后还要push吗

九度OJ-程序员宅基地

文章浏览阅读891次。1.1016这是一道简单题,主要要考虑到,比如说108,8,2这种类似的情况,其中8被认为是08,所以最后两位相同,输出-1。#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char a[20], b[20], *p, *q;int k, a1, b1, len1, len2, a2, b2;while (scanf("%s%s%d", a, b, &a..._九度oj

使java方法全部折叠_Intellij IDEA中一次性折叠所有Java代码的快捷键设置-程序员宅基地

文章浏览阅读575次。Intellij IDEA中一次性折叠所有Java代码的快捷键设置问题:在Java文件中,想把所有的Java方法代码都一次性给折叠起来,用哪个点开哪个。问题来源:在新建model bean的时候,要是属性很多,那么对应的getter和setter就会很多,要是所有的方法代码都是展开状态,那么这个文件看着也不甚美观,所以,可以把方法都折叠起来。下面看怎么设置快捷键:看法宝。。。要是看不懂,系统自带的..._idea 设置所有 {} 缩起来

FreeModbus RTU 移植指南_freemodbus临界区保护-程序员宅基地

文章浏览阅读3.5k次,点赞5次,收藏39次。FreeModbus是一个免费纯 C 语言支持 Modbus RTU/ASCII支持 Modbus TCP本文介绍 Modbus RTU 移植。裸机Keil MDK 编译器Cortex-M3 内核芯片(LPC1778/88)1.体系架构相关项目描述INLINE宏,编译器相关,内联指令或关键字宏,按照 C 代码编译宏,进入临界区和退出临界区BOOLUCHARCHARUSHORTSHORTULONGLONG数据类型TRUEFALSE。_freemodbus临界区保护

132.【MySQL_进阶篇】-程序员宅基地

文章浏览阅读4.2w次。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。Innodb是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,Innodb是默认的MySQL存储引擎。MyISAM是MySQL早期的默认存储引擎。Memory引擎的表数据时存储在内存中的,由于受到硬件问题、或断点问题的影响,只能将这些表作为临时表或缓存使用。在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。

随便推点

Error opening data file Tesseract-OCR\tessdata/eng.traineddata问题 解决_error opening data file ./eng.traineddata-程序员宅基地

文章浏览阅读1.2w次,点赞23次,收藏19次。在安装完tesseract, pytesseract后执行测试命令,发现打印如下错误:Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to the..._error opening data file ./eng.traineddata

杂项总结 vue sass less vue-router_vue使用less还是sass好-程序员宅基地

文章浏览阅读92次。// 通用修饰符 // stop 实现阻止冒泡的修饰符// prevent 实现阻止默认行为的修饰符// once 表示单次触发的修饰符// self 表示绑定事件的元素与触发事件的元素是同一个元素// 鼠标修饰符// left 鼠标点击左键// right 鼠标点击右键// middle 鼠标中间件// 辅助修饰符// ctrl 点击 ctrl 辅助键// shift 点击 shift 辅助键盘// alt 点击 alt 辅助键// meta_vue使用less还是sass好

html5 accept encoding,html - How to Specify a Vary: Accept-Encoding header? - Stack Overflow-程序员宅基地

文章浏览阅读79次。I found a helpful post to speed up wordpress website or blog https://www.keycdn.com/blog/speed-up-wordpress/With some other optimizations, I am also using below code on my site in .htaccess file (usua..._html5设置accept-encoding

在docker容器内 获取swarm节点IP_docker swarm 指定容器ip-程序员宅基地

文章浏览阅读566次。想在应用内获取当前swarm节点的IP使用.net 6框架 vs2022开发工具。_docker swarm 指定容器ip

国产的文档开发控件,spire.office新版本,一起来看看~_spire.office developer subscription(开发版本)-程序员宅基地

文章浏览阅读922次。Spire.Office 8.6.0更新已发布。在该版本中,Spire.PDF支持转换多页PDF文档为单个SVG文件;Spire.XLS新增了优化删除行的速度的方法;Spire.Presentation支持为TextFrame设置栏数。此外,许多已知问题也在该版本中被成功修复。_spire.office developer subscription(开发版本)

阿里云 oss 文件不能下载 只能直接打开的解决方案_oss无法下载-程序员宅基地

文章浏览阅读1.3w次。阿里云的oss,直接上传后,可以访问,直接是打开有一些程序,需要直接能下载设置oss文件的Content-Disposition属性值为attachment就是直接打开了但oss有很多文件,不能批量设置现在可以用ossutil批量操作=====原理:通过ossutil连接到oss,然后通过命令行,直接修改:Content-Disposition值为attachmentossutil支持多系统===..._oss无法下载

推荐文章

热门文章

相关标签