代码随想录一刷总结

为期60天的代码随想录算法训练营结束了,中间想放弃过,敷衍过,但是最终还是完成了,给我自己和打满60天卡的小伙伴们一个赞。这60天的从一个算法小白到刚刚入门,虽然只是小小一步,却并不容易,至少我现在看到题目会思考用什么办法解决了,有时候还会想到好几种办法,我的进步是肉眼可见的,也感谢代码随想录,感谢卡尔哥,这网站太好了!代码随想录,大家走过路过不要错过。下面是我的总结

目录

数组类题目

链表类题目

哈希表类题目 

字符串类题目 

栈与队列

二叉树类题目 

回溯算法 

贪心算法 

动态规划 


数组类题目

二分查找:查找一个元素,操作3个指针

  • 前提:有序且无重复元素

移除元素:快慢指针,快指针找不含目标元素的数组,慢指针更新数组下标位置

滑动窗口:不断调节子序列的起始位置和终止位置,从而得到结果

对于数组类题目,要想到双指针法,但是要思考指针的位置,记得二分查找要排序

链表类题目

链表的题目一般比较难想,画图可以帮助我理清思路,对于链表的修改(插入、删除、移动),都加一个虚拟头节点

哈希表类题目 

对于Java来说,哈希表主要有HashMap 和HashSet 和数组

当我们遇到了要快速判断一个元素是否出现在集合里时,就用哈希法

数组:大小有限,数据不能太分散

  • 可解决的题目类型:242.有效的字母异位词

map<Key,Value>:key是唯一的且是无序的

  • 可解决的题目类型:1. 两数之和

set<Key>:

  • 可解决的题目类型:349. 两个数组的交集

字符串类题目 

字符串类题目可以参考数组类题目,一般也是双指针法

字符串类题目还有KMP算法,可以看一下我这篇博客KMP算法总结

栈与队列

栈:先进后出         队列:先进后出

要记住栈与队列的常用API,括号匹配就是用栈道一道经典题目

还有单调栈,单调队列,多多练习才能熟练操作栈与队列

二叉树类题目 

二叉树多用递归来解题,这就不得不记住递归三部曲:

  1. 确定递归函数的参数和返回值
  2. 确定结束条件
  3. 单层递归逻辑

要掌握二叉树的前中后序遍历和层序遍历的递归法和迭代法,可以看一下我这篇博客二叉树的遍历

递归的本质就是栈,二叉树的迭代法大多数都是用栈实现的

回溯算法 

我觉得回溯算法很难,都是照着题解抄,多亏了卡哥总结的回溯算法的模板,只要照着模板,简单的都能自己写出来:

void trabacking(){if(终止条件){存放结果;return;}for(遍历){处理节点;trabacking();撤销;}
}

回溯法能解决的问题:

  1. 组合问题
  2. 排列问题
  3. 分割问题
  4. 子集问题
  5. 棋盘问题

贪心算法 

贪心的本质就是局部最优-->全局最优,不用关心上一个状态

这是一种思想

动态规划 

动态规划中的每一个状态是由上一个状态推导出来的

动规五部曲

  1. 确定dp数组的下标及其含义
  2. 确定递推公式 
  3. dp数组的初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EtherCAT转Profinet网关连接西门子PLC与凯福科技总线步进驱动器通讯

西门子S7-1200/1500系列的PLC&#xff0c;采用Profinet实时以太网通讯协议&#xff0c;需要连接带EtherCAT的通讯功能的伺服驱动器等设备&#xff0c;就必须进行通讯协议转换。捷米特JM-EIP-RTU系列的网关提供了&#xff0c;快速可行的解决方案 捷米特JM-ECTM-PN在PROFINET一侧…

tomcat

1. 简述静态网页和动态网页的区别。 静态网页是指在服务器存储的网页内容保持不变&#xff0c;不会根据用户的请求或其他条件而改变。它的内容是固定的&#xff0c;无法根据用户的不同需求进行个性化或实时更新。静态网页一般由HTML、CSS和JavaScript等静态资源组成&#xff0…

linux文件描述符fd

文件描述符 fd是一个>0 的整数 每打开一个文件&#xff0c;就创建一个文件描述符&#xff0c;通过文件描述符来操作文件 预定义的文件描述符: 0:标准输入&#xff0c;对应于已打开的标准输入设备(键盘) 1:标准输出&#xff0c;对应于已打开的标准输出设备(控制台) 2.标准错误…

java异常机制分析

java异常机制分析 本文实例分析了java的异常机制&#xff0c;分享给大家供大家参考。相信有助于大家提高大家Java程序异常处理能力。具体分析如下&#xff1a; 众所周知&#xff0c;java中的异常(Exception)机制很重要&#xff0c;程序难免会出错&#xff0c;异常机制可以捕获…

智慧水利整体解决方案[43页PPT]

导读&#xff1a;原文《智慧水利整体解决方案[43页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff1a; 如需获取完整的…

LNMP及论坛搭建(第一个访问,单节点)

LNMP&#xff1a;目前成熟的一个企业网站的应用模式之一&#xff0c;指的是一套协同工作的系统和相关软件 能够提供静态页面服务&#xff0c;也可以提供动态web服务&#xff0c;LNMP是缩写 L&#xff1a;指的是Linux操作系统。 N&#xff1a;指的是nginx&#xff0c;nginx提…

Doris(四)-Rollup 使用

1&#xff0c;基本语法 1.1 新增 alter table user_landing_record_newadd rollup succ_login_count_index(user_id,day_succ_login_count); 1.2删除 alter table user_landing_record_newdrop rollup succ_login_count_index; 1.3其他操作&#xff0c;参考官网 传送门 …

Lua语法入门

3.1 初识Lua Lua是一种轻量级的脚本语言&#xff0c;它使用标准C语言编写&#xff0c;并以源代码形式开放。它的设计目标是嵌入到应用程序中&#xff0c;为应用程序提供灵活的扩展和定制功能。您可以在官方网站https://www.lua.org/上了解更多关于Lua的信息。 Lua经常被嵌入到…

CSP-J2019初赛试题客观题详解

1、中国的国家顶级域名是() A. .cn B. .ch C. .chn D. .China 【答案】A 【解析】 常见的顶级域名还有&#xff1a;.com表示商业机构&#xff1b;.org表示非盈利性组织&#xff1b;.net表示网络服务机构&#xff1b; .gov表示政府部门&#xff1b;.edu表示…

python之正则表达式

目录 正则表达式 python正则表达式方法 match search findall finditer compile 元字符匹配 元字符 量词 贪婪匹配和惰性匹配 正则表达式的group 语法 案例 正则表达式 正则表达式又称规则表达式&#xff0c;是使用单个字符串来描述、匹配某个句法规则的字符串…

[代码案例]学会python读写各类文件的操作(excel,txt,mat)

简介 python读写三类文件 excel文件 txt文件 mat文件 代码 """Description: python 读写各类文件 操作 """ import scipy as scipy from scipy.io import loadmat import xlwt import xlrd 读写excel文件workbook xlrd.open_workbook(test1.…

密码攻击与ADSelfService Plus的保护

密码攻击是当前网络安全面临的严峻挑战之一。黑客通过不断演进的技术手段&#xff0c;试图入侵用户账户&#xff0c;窃取敏感信息&#xff0c;从而对个人和组织造成严重损害。为了应对密码攻击的威胁&#xff0c;ManageEngine推出了ADSelfService Plus&#xff0c;这是一款功能…

【剑指 Offer 32】从上到下打印二叉树 II

题目&#xff1a; 从上到下按层打印二叉树&#xff0c;同一层的节点按从左到右的顺序打印&#xff0c;每一层打印到一行。 例如:给定二叉树: [3,9,20,null,null,15,7]3/ \9 20/ \15 7返回其层次遍历结果&#xff1a; [[3],[9,20],[15,7] ]思考&#xff1a; 题目要求从上到…

流程图如何制作?5步快速画出好看的流程图!

流程图是一种图形化工具&#xff0c;描述某个过程或者操作的步骤&#xff0c;以及某种业务系统的具体流程。流程图通常由各种图形符号、形状、箭头组成&#xff0c;可以清晰的表示出流程或系统中各种步骤、每个环节之间的关系、条件判断、数据的流动和处理过程等。 在线流程图软…

【LeetCode每日一题】——85.最大矩形

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 矩阵 二【题目难度】 困难 三【题目编号】 85.最大矩形 四【题目描述】 给定一个仅包含 0 …

excel 计算 分位值

_XLFN.QUARTILE.EXC(Result 1!G:G,2) 和 PERCENTILE 都可以用来计算一组数据的分位数&#xff0c;但是它们的计算方式略有不同。 _XLFN.QUARTILE.EXC(Result 1!G:G,2) 是 Excel 中的一个函数&#xff0c;在计算一个数据集的四分位数时使用。其中&#xff0c;第一个参数 Result…

P1144 最短路计数

最短路计数 题目描述 给出一个 N N N 个顶点 M M M 条边的无向无权图&#xff0c;顶点编号为 1 ∼ N 1\sim N 1∼N。问从顶点 1 1 1 开始&#xff0c;到其他每个点的最短路有几条。 输入格式 第一行包含 2 2 2 个正整数 N , M N,M N,M&#xff0c;为图的顶点数与边数…

【基础类】—三栏页面布局的方案和优缺点

一、假设高度已知&#xff0c;中间宽度自适应&#xff0c;三栏&#xff08;列&#xff09;布局的方案有哪些&#xff1f; float浮动、absolute绝对定位、flex弹性盒子、table表格布局、grid网格布局 浮动 float <style>* {margin: 0;padding: 0;}.container {width: 1…

内网穿透-————SSH远程连接树莓派

前言 文章目录 前言内网穿透实现公网SSH远程连接树莓派1. 在树莓派上安装[cpolar客户端](https://www.cpolar.com/)2. 在树莓派浏览器中输入本地9200端口3. 在公共互联网的电脑的命令行界面输入命令 内网穿透实现公网SSH远程连接树莓派 随着科技的进步和信息技术的发展&#x…

异步javaScript

在本文中&#xff0c;我们将解释什么是异步编程&#xff0c;为什么我们需要它&#xff0c;并简要讨论 JavaScript 历史上异步函数是怎样被实现的。 预备知识&#xff1a;基本的计算机素养&#xff0c;以及对 JavaScript 基础知识的一定了解&#xff0c;包括函数和事件处理程序…