![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计
文章平均质量分 77
Astronaut_001
会一点点JAVA,目前从事大数据相关工作...
展开
-
leetcode第291场周赛总结复盘
leetcode第291场周赛总结前言题目与题解1.移除指定数字得到最大结果(Easy)题目:思路错误代码1运行结果1错误代码2正确代码2.必须拿起的最小连续卡牌数题目思路正确代码3.含最多k个可整除元素的子数组题目思路错误代码1正确代码总结前言经过将近一年的刷题和总结学习,感觉算法的基础部分算是啃下来了,但是还没有吃透,模拟、滑动窗口、集合的应用,动态规划、dfs…但是还是有很多还没有学习和掌握的,例如:图、并查集、bfs等等。怀揣着激动的心尝试了自己的第一次周赛,结果有些不尽人意,特作此复盘,希望原创 2022-05-01 14:42:21 · 254 阅读 · 0 评论 -
动态规划例题详解(四)
动态规划前言背包问题基础01背包理论基础二维dp数组背包滚动数组背包总结前言转眼,我们已经接触了动态规划三天了。从一开始的萌新小白,到会使用五步法解决一些动态规划的经典例题了。今天开始,我们要开始的内容,可谓是经典得不能再经典的背包问题,话不多说我们直接进入正题。背包问题基础常见的背包问题有三种:01背包、完全背包还有多重背包。我们要掌握的是01背包和完全背包,多重背包可做拓展了解。看到这里不少人还是懵逼的状态吧,没关系,我也是( ﹁ ﹁ ) ~→。怎么区分这三种背包呢,或者这三种背包是什么意原创 2021-12-07 14:06:45 · 935 阅读 · 0 评论 -
动态规划例题详解(三)
动态规划前言整数拆分(进阶++)不同的二叉搜索树(进阶++)总结前言到目前为止,我们已经初步入门了动态规划,了解了两种题型:爬楼梯和不同路径,使用动态规划思维去解决问题:即有记忆的dp数组。也对五步法解决问题有了一定的理解,今天我们继续学习动态规划,趁热打铁!今天学习的两种题型分别是整数拆分和不同的二叉搜索树。整数拆分(进阶++)我们先读题目:其实这道题目可以说是动态规划的高级应用了。首先读到题目,我们第一反应绝大多数都不会想到用动态规划解决这道题目,更像是用数论去解决。然而这题也可谓是动原创 2021-12-07 00:05:52 · 315 阅读 · 0 评论 -
动态规划例题详解(二)
动态规划前言不同路径(进阶)不同路径Ⅱ(进阶+)前言昨天的两道入门级别题目初步了解动态规划后,我们对动态规划有了初步的认知:①动态规划可以看成是有记忆的数组,我们可以通过状态转移方程用上一个数组推导出当前数组的状态②对动态规划的解题步骤也有了更加清晰的理解(五步走):确定动态规划数组dp[i]的含义及下标含义确定动态(状态)转移方程确定动态数组dp的初始化确定动态规划的遍历顺序举例推导遍历dp在昨天练习的基础上,我们再对动态规划经典题型:不同路径进行练习和讲解。准备发车!不同原创 2021-12-05 15:47:46 · 145 阅读 · 0 评论 -
动态规划例题详解(一)
动态规划例题详解一斐波那契数列(入门级别)题目:解题思路:1.确定dp数组下标含义2.确定动态转移方程3.确定dp数组初始化4.确定遍历顺序5.举例推导遍历dp解题代码:/***动态规划五步走: 1.确定dp数组下标含义 2.确定动态转移方程 3.确定dp数组初始化 4.确定遍历顺序 5.举例推导遍历dp 时间复杂度O(n) */class Solution { public int fib(int n) {原创 2021-12-04 15:24:16 · 139 阅读 · 0 评论 -
算法学习之KMP
算法学习之KMP前言一 实现strStr()真的很难二12.总结前言什么是KMP算法?说真的,写下这篇博客的时候我也还没有搭建其这个看似超级高深的算法的知识基础、体系,写下这篇博客,一方面是因为KMP算法对以后参加比赛或者学习思维上能开展更为开阔的思路,也是因为Leetcode上的一道题目,这道题目困惑我许久,今天重拾这道题依旧让我手足无措,我们就这道题目展开,对KMP算法的神秘面纱。一 实现strStr()真的很难说真的,在我晚上重新回顾这道题的时候,我以为我轻松的写出来了,思路也很清晰,可是答原创 2021-10-24 13:40:41 · 2642 阅读 · 0 评论 -
算法学习之字符串
算法学习之字符串前言一、字符串基础1.String类及其常用方法:2.StringBuffer类及其常用用法二、实战分析1.字符串反转2.翻转字符串里的单词总结前言我们常常在学习、或者完成项目时使用字符串类,字符串在编程中有着举足轻重的地位,学习好字符串并使用它解决一些算法问题,然后才能深入了解它,并且在以后的项目中能熟练使用一、字符串基础1.String类及其常用方法:API文档是这样描述String的:常用方法一览:返回值方法名称方法简要charcharAt(原创 2021-09-27 20:08:17 · 174 阅读 · 0 评论 -
算法学习之哈希表
算法学习之哈希表前言示例完成1.快乐数2.四数相加II前言通过前面博客的学习,我们对哈希表的结构有了初步的理解,以及会一些哈希表的简单的使用,今天我们继续通过做题的方式巩固基础并进行进一步的学习.示例完成1.快乐数leetcode:202题:快乐数编写一个算法来判断一个数 n 是不是快乐数。【快乐数】定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是原创 2021-09-13 11:24:46 · 84 阅读 · 0 评论 -
算法学习之哈希表
算法学习之哈希表前言一、哈希表1.什么是哈希表2.关于API文档中HashTable3.代码随想录中的经典讲解①通过哈希函数来快速查询学生是否在学校②哈希冲突4.常见的哈希结构二、小试牛刀,解决问题1.有效的字母异位词2.总结前言从这篇开始,我们又进入了一个新的领域的学习,也就是集合。学习数组,在数组中查找数据,我们会感觉很方便,但是遇到需要在数组中某个元素的增删,往往又会很耗费资源学习链表,在链表中对特定或者是需要的元素进行增删时,也是极佳的解决方案,但是涉及到查找结点值时却也束手无策而本系列原创 2021-09-12 21:35:12 · 143 阅读 · 0 评论 -
算法学习之链表篇
算法学习之链表篇前言一、链表设计大师二、小试牛刀1.反转链表2.总结前言这是算法学习链表篇的第二篇Blog,由于个人的懒癌+开学琐事,所以拖延了超级久才发布第二篇学习博客,学习是一个持续、长久的过程,希望以后自己能战胜拖延hhh,话不多说,我们继续深究链表,深入学习叭~本博客参考了代码随想录,特此声明一、链表设计大师我们在链表操作时往往会使用他人写好的函数,我们直接调用即可,这样操作固然方便,但是这不利于我们理解、学习链表,所以,我们不妨来写5个常见的链表操作,你准备成为大师了么?Le原创 2021-09-09 21:10:28 · 283 阅读 · 0 评论 -
算法学习之链表篇
算法学习之链表篇前言一、链表数据结构剖析链表类型链表存储方式链表的定义(Java)应用篇(Day1)总结前言链表是一种数据结构,和数组同级,如Java中使用的ArrayList,其实现原理是数组,而LinkedList是链表,链表在循环遍历时效率不高,但在插入删除时优势却很明显,学习好链表也是夯实基础的重要,在算法题中链表也有着举足轻重的地位。本系列文章会就一些经典的算法题入手,剖析各数据结构以及题解的思想~ 一、链表数据结构剖析链表是通过指针串联在一起的线性结构,每一个节点由两部分组成,数原创 2021-08-20 23:46:47 · 157 阅读 · 0 评论 -
2021-04-23
动态规划—基础学习篇 **动态规划在求解问题中往往是解题利器**,刷题leetcode近两个月,还没有系统学习动态规划、贪心算法、回溯等,因此接下来一段时间,小白会定期发布自己系统学习的算法,帮助自己和大家理解,话不多说,直接进入正题。 其实查阅资料可知,动态规划无非就是两大步骤:①拆分问题;②确定状态及状态转移方程 对于以上两大步骤,小白通过“BS有前途”的博客中讲的通俗易懂,里面的例子也都很经典,不了解的小伙伴可以去看一下:[经典算法:动态规划](https://blog.csdn.net/ail原创 2021-04-23 16:09:39 · 56 阅读 · 0 评论 -
2021-04-21
4月21日刷题心得:简单题:leetcode125.验证回文串:题目如下:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。第一次解答思路:回文串,使用双指针遍历即可,先将大写字母全部转化成小写字母便于判断,再开始遍历字符串,左边遇到非字母的数,继续向左扫描,跳过判断,右边相同原理,原代码如下:class Solution {public: bool isPalindrome(string s) {原创 2021-04-21 23:59:41 · 58 阅读 · 0 评论