算法题
文章平均质量分 55
羽飞云超忠
这个作者很懒,什么都没留下…
展开
-
字节面试题-小于N的最大数字
首先将arr数组排序,之后使用深搜+贪心的思想,从第一位开始,尽量使用与对应位置相等的数字。如果有任意一位没有使用相等的数字,那在后面的所有位中都直接使用最大的数字即可。给定一个数组arr=[2,3,4,5],N=2345,求使用arr中的数字,组成一个不大于N的最大的数字。2.如果在找第一位时,就发现都不相等,那不要立刻返回-1,而是应该放弃第一位,将后面的位都选择最大值。深受启发,但原文仍有瑕疵,最终的答案可以等于N,而且有不必要的搜索。2.在之前选择的基础上,此位置没有满足条件的选择,应当返回-1。.原创 2022-07-30 22:54:35 · 8640 阅读 · 10 评论 -
固定字符组成不含特定子串的定长字符串
本题为美团秋招笔试题,原题描述如下:使用字符“a”和字符"b"组成长度为n的字符串。要求不能包含“aba”和“bab”子串。求组成的字符串的个数。1.本题最简便解法:斐波那契数列。2,4,6,10,16,26,···...原创 2021-09-05 00:39:13 · 454 阅读 · 0 评论 -
快速排序/topK-双指针/挖坑法-python
快速排序方法:def quick_sort(nums,l,r): #双指针方法 if l>=r: return temp = nums[l] i,j=l,r while i<j: while i<j and nums[j]>=temp: j-=1 while i<j and nums[i]<=temp: i+=1原创 2021-05-23 21:49:40 · 254 阅读 · 0 评论 -
嵌套列表迭代器-python
本题LeetCode链接:https://leetcode-cn.com/problems/flatten-nested-list-iterator/本题简单来说,就是对于一个多层嵌套的列表,按顺序输出里面的每一个内容,例如:输入: [1,[4,[6]]]输出: [1,4,6]如果只是单纯地进行输出,那么可以很简单使用递归:def fun(data): for i in data: if isinstance(i,int): prin原创 2021-05-20 09:51:14 · 375 阅读 · 0 评论 -
加权莱文斯坦距离/加权最小编辑距离(python)
不加权的最小编辑距离链接:https://blog.csdn.net/qq_36282995/article/details/116419855之前讲解了关于不加权的最小编辑距离,即字符串之间添加、删除、修改字符的比重是一样的。但这其实是不太合理的。比如‘abc’转换为‘abv’,我们只需要将字母c转换为字母v即可。我们记为编辑距离为1.对于‘abc’转换为‘abp’,只需要将字母c转换为字母p即可,编辑距离也为1.但我们知道,在键盘上字母c和字母v的距离很近,但字母c和字母p的距离原创 2021-05-05 10:10:29 · 1363 阅读 · 0 评论 -
莱文斯坦距离/最小编辑距离(python)
LeetCode题目链接:https://leetcode-cn.com/problems/edit-distance/本题的解题思路,和经典的动态规划问题:最长公共子序列是相似的,只不过一个求最大,一个求最小。简单来说:如果我们要比较字符串‘abc’和字符串‘def’,而且已知:s1=‘ab’和s2=‘de’的最小编辑距离为k1, s1=‘abc’和s2=‘de’的最小编辑距离为k2, s1=‘ab’和s2=‘def’的最小编辑距离为k3,那我们知道我们有三种可能得到原问题的解:原创 2021-05-05 09:46:49 · 1135 阅读 · 0 评论 -
python 相交的链表(链表无环的情况)
如果两个链表都没有环,那么是否相交只有两种情况:相交的情况:不相交的情况:因为相交的链表的末尾部分是完全相同的,所以这里提供4个思路去求解:求长度法:先求出两个链表的长度(如长度为3和4),然后令较长的链表先走4-3=1步。之后两个链表同时向右遍历,如果找到共同的节点,则是第一个相交节点。 首尾相连法:两个链表同时向右遍历, 指针p:从A链表头部遍历至末尾时,从B链表头部继续遍历。 指针q:从B链表头部遍历至末尾时,从A链表头部继续遍历。 最后p,q指针一定相等,要么是相原创 2021-03-31 22:04:03 · 174 阅读 · 2 评论