- 博客(6)
- 收藏
- 关注
原创 【leetcode - 77】 组合
这题的解法在于将1到n中使用过和没有使用过的元素进行分离,选取元素的时候都从未使用过的元素中进行挑选,并且选取完元素进行下一层递归之后将选取结果还原(比如选取结果为[1, _]还原为[_, _])。以下是简易的示意图(couts表示选取的元素个数,pos表示可以使用的元素开始位置)需要选取将1到n中所有含有k个数字的组合(很明显,就是普通的组合题目),排列组合问题都可以使用回溯法来进行解决(即修改最后一位的输出)。
2024-03-30 17:19:15 210 1
原创 排序算法-插入排序
即,可以选定数组的首元素为一个有序的数组(因为此时数组里面只有一个元素肯定是有序的),然后向后逐个比较插入。插入排序本质上是讲一组无序的数组中的元素插入到一个有序数组中(元素逐个插入)。
2024-03-12 21:43:50 452 1
原创 排序算法-归并排序
将一个数组按照中间mid位置进行拆分,然后分别对拆分的两个数组进行排序,最后,再将两个数组进行归并。其中,拆分的两个数组中的排序也是应用同样的方法进行排序的。归并排序采用的是分治的思想对一组无序的数据进行排序的。
2024-03-12 19:45:23 342 1
原创 排序算法-快速排序
首先,选取一个base元素(一般选择第一元素或者最后一个元素,方便排序),其次,通过对数组的遍历,将比base小的元素放于base的左侧,将比base大的元素放于base的右侧,然后再对base元素的两侧执行同样的操作,知道数组排序完成。以下就是一轮排序的演示,可以看到,一开始选择了2作为base,到最后2的左侧是比它小的元素,右侧都是比他大的元素。快速排序采用的是分治的思想来对一组无序的数据进行排序的。
2024-03-11 00:47:00 359
原创 【leetcode - 76】 最小覆盖子串
由题意可知,需要在字符串s中找到涵盖字符串t中所有字符的最小字串,并且t中重复字符也是加入计数,这是一道很标准的滑动窗口类型的题目。图1 滑动窗口动画演示,图像取自本题力扣官方题解。以上为滑动窗口一个简单举例,具体自行百度。
2024-02-28 17:15:24 398
原创 【leetcode - 524】通过删除字母匹配到字典里最长单词
当是s[i] == d[j]时,i++,j++,否者i++,当子串串s完成遍历时,只需要判断j是否等于d的长度即可,如果等于,那个d就是符合条件的字符串。(d为dictionary中的数组元素)。不对dictionary数组进行排序,将找到的可能符合条件的字符串保存在字符串变量ans中,然后每次进行保存的时候进行利用“长度最长且字母序最小”这个条件进行判断,即将排序步骤放到最后来做。双指针(一个指针指向字符串s,一个指针指向dictionary中的元素)
2024-02-28 14:47:08 354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人