算法与数据结构
、sakura
这个作者很懒,什么都没留下…
展开
-
LeetCode37 解数独
LeetCode37 解数独原创 2022-08-10 21:57:45 · 489 阅读 · 0 评论 -
背包问题-动态规划算法
动态规划算法背包问题,有一个背包,容量为4kg,现在有如下物品:吉他,重量1kg,价格1500;音响,重量4kg,价格3000;电脑,种类3kg,价格2000;如何将装入背包的物品的总价值最大,并且重量不超出背包的容量,装入的物品不能重复背包问题的思路分析背包问题指的是一个给定容量的背包、若干具有一定价值和重量的物品,如何选择物品放入背包使物品的价值最大。背包问题又分01背包和完全背包01背包指的是每种物品最多放一个,完全背包指的是每种物品都有无限件可用,而无限背包可以转化为01背包用一个原创 2020-08-08 22:01:45 · 616 阅读 · 0 评论 -
字符串匹配问题-暴力匹配算法与KMP算法
字符串匹配问题有一个字符串str1= “你怎么我怎么又怎么这样会怎么这样你怎么这样”,和一个子串str2=“怎么这样你”现在要判断 str1是否含有str2,如果存在,就返回第一次出现的位置,如果没有,则返回-1暴力匹配算法假设现在str1匹配到 i 位置,子串str2匹配到 j 位置,则:如果当前字符匹配成功(即str1[i]== str2[j]),则i++, j++,继续匹配下一个字符如果不匹配(即str1[i]! =str2[j]),令i = i - (j - 1),原创 2020-08-07 23:37:39 · 474 阅读 · 0 评论 -
七种常用的排序算法--思路加代码实现
列举了七种常用的排序算法的思路及代码实现冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、桶排序代码上有很详细的注解,跟着代码的思路走,能够轻松理解这些算法以后会开始刷leetCode的算法题,有趣的题目会写下来与大家分享,欢迎关注和讨论冒泡排序冒泡排序(bubble sorting)的基本思想是:通过对需要排序的序列从前向后(下标较小的元素开始),依次比较相邻元素的值,如果发现逆序的元素则交换,使值较大(或者值较小)的元素逐渐从前移到后代码实现:使用双重for循环来进行冒泡排序,外原创 2020-08-06 15:04:23 · 330 阅读 · 0 评论 -
约瑟夫问题的思路及代码实现(超详细的注释)
约瑟夫问题设编号为1,2,…,n的n个人围在一圈,约定编号为k(1≤k≤n)的人从1开始报数,数到m的那个人出列,出列的人的下一位又开始从1开始报数,数到m的那个人又出列,以此类推,直到所有人出列为止,产生一个出队编号的序列假设n=5,即有5个人围在一圈;k=1,即从第一个人开始报数;m=2,即数两下,则最后出队编号的序列为24153思路:可以用一个不带头结点的循环链表来处理,先构成一个有n个结点的单循环链表(单向环形链表),然后由k结点从1开始计数,计到m时,对应的结点从链表中删除,然后再从被删除结原创 2020-08-05 21:36:42 · 1665 阅读 · 0 评论