算法
文章平均质量分 60
HanJuly9569
热衷于探索世界的程序猿一枚…
展开
-
动态规划思路
一些动态规划的总结原创 2023-03-10 13:49:26 · 352 阅读 · 0 评论 -
栈和队列使用
一、栈的使用栈在使用过程中,算法的运算过程应该是从后向前计算的在栈的不仅可以存放值还可以存放下标计算每日温度###当遇到比栈顶高的温度时,开始标记结果,然后继续出栈直到计算到比当前值大的温度,然后入栈根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4,原创 2021-05-12 00:57:32 · 863 阅读 · 0 评论 -
数组链表算法思路三(KMP算法)
思路在字符串的比较中,不能双重循环的去做,时间复杂度是n^2,需要进行简化例子:(KMP)有s,m两个字符串,s= abcdabcdx,m=abcdx,请找出m子串在s中起始位置。按照我们的常规思路我们会将m和s的每一个字符比较(有两个游标i,j,分别指向两个字符串的开头):1.如果m的第一个字符与s中的某一个位置的字符相等(比如:第一个),然后继续移动i,和j, i++ ,j++2.如果m中的某一个字符与s中不相等,就需要将两个指针重新定位仔细看上图的几步:当第一步匹配失败后,其实第二步原创 2021-05-12 00:55:26 · 351 阅读 · 1 评论 -
数组链表算法思路二
总体思路参考上一篇数组链表算法思路一例题:解题方法:1.遇到字母统计使用hash思想进行统计2.遇到数字可以使用异或运算例题一题目内容:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。解题思路字母异位词: 长度相同,只是字母的位置不相同此原创 2021-05-12 00:54:06 · 143 阅读 · 0 评论 -
数组链表算法思路一
解题方法:快慢指针推进程序降低复杂度HashMap,优先队列,双端队列辅助统计计算快排思想完成对半查找,无需进行构造搜索树使用kmp算法进行子串查找遇到字母统计使用hash思想进行统计遇到数字可以使用异或运算思维首先请放弃你那种暴力法,即动不动就上双重循环的思维方式。然后更多的使用切分和线性的方式去做数组或者链表的题,在动态规划中更是这样。例题一解题方法:使用快慢指针+Map进行辅助统计计算总结一句话:连续不重复字串最长题目内容LeetCode 第 03 题:给定一个字符串,原创 2021-05-12 00:52:16 · 142 阅读 · 0 评论