自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 D12Q1 python哈希表的使用——统计范围内的元音字符串数

"artro" 是一个元音字符串,因为它以 'a' 开头并以 'o' 结尾。- "are" 是一个元音字符串,因为它以 'a' 开头并以 'e' 结尾。- "aeo" 是一个元音字符串,因为它以 'a' 开头并以 'o' 结尾。- "ooo" 是一个元音字符串,因为它以 'o' 开头并以 'o' 结尾。- "u" 是一个元音字符串,因为它以 'u' 开头并以 'u' 结尾。1.使用set(''a'')函数可以新建一个集合,可作为哈希表。- "amy" 不是元音字符串,因为它没有以元音字母结尾。

2024-03-07 20:40:31 347 1

原创 D11Q1

直接使用split()方法拆分数组,注意不能直接拆分words,要拆分words[i],而且拆分后的数组中有空字符串,需要去掉字符串,最后整合所有拆分数组即可。:按序遍历words,判断words[i]是否为separator,若不是就加入数组s,若是则将s用join函数整合放入ans数组中,最后输出ans。因此,结果数组为 ["one","two","three","four","five","six"]。"one.two.three" 拆分为 "one", "two", "three"

2024-01-20 13:28:00 365

原创 D10Q1最大字符串配对数目

我们将第 0 个字符串与第 2 个字符串匹配,因为 word[0] 的反转字符串是 "dc" 并且等于 words[2]。- 我们将第 1 个字符串与第 3 个字符串匹配,因为 word[1] 的反转字符串是 "ca" 并且等于 words[3]。- 我们将第 0 个字符串与第 1 个字符串匹配,因为 words[1] 的反转字符串 "ab" 与 words[0] 相等。输入:words = ["cd","ac","dc","ca","zz"]输入:words = ["ab","ba","cc"]

2024-01-17 19:09:38 1519 1

原创 D9Q1 n皇后问题

那么需要将rows[row]设为col,cols[col]=1,maindiag[row-col+n-1]=1,subdiag[row+col]=1。(1)因为每行,每列,每条主对角线,副对角线都只能有一个皇后,所有可以将四条线都定义成一个一维列表——rows[n],cols[n],maindiag[2*n-1],subdiag[2*n-1]maindiag列表表示该主对角线有无皇后,初值为0,每条主对角线用row-col+n-1索引。rows列表存放该行的皇后的列号,初值为-1,表示该行无皇后。

2024-01-03 19:41:20 366 1

原创 D8Q1马走日

再定义递归函数move(x,y,step),xy为移动的格子,step是步数,当步数到达m*n时,说明所有格子均已被遍历,可记一条路径——计数器cnt加1,并返回上一层。在函数中需要循环8次,向八个方向遍历,每次写出一个方向的下一个格子,判断是否在棋盘内和是否未经过,若是,则马移动到那个位置,步数加一,进入下层递归。给定棋盘大小m,n和马的初始位置a,b。当所有情况被遍历,输出计数器结果即为最终结果。先将初始位置标记为1,含义为已经过该格子,实例:m=5,n=4,a=0,b=0,2. 函数不一定要返回值。

2024-01-02 18:46:37 581

原创 D7Q2没被污染的海域

可以使用递归函数,标记没被污染的海域,再依次向四个方向遍历,当出界或直到遇到被污染的海域时停止,然后返回上一个节点进行下一个方向。这就是深度优先搜索dfs的思想。我们可以在遇到一块没被污染的海域时,计数一次,再将整一块没被污染的海域标记成已遍历过的,然后只要再继续遍历没有遍历的海域,重复以上过程。最后输出总计数即为答案。当遇到一块没被污染的海域,向他的上下左右四个方向延申,直到到达已被污染的海域,即可遍历整一块没被污染的海域。

2023-12-27 22:05:33 604 1

原创 D7Q1深度优先算法

使用递归函数dfs(x,y,v),x是横坐标,y是纵坐标,v是上一个点的值。在函数中,先判断是否出界或值比上一个值小,若是,则直接返回0。优化:递归函数有很多重复计算,可使用记忆数组记录x,y点的最大递减长度,之后递归到x,y点即可直接调用。if x<0 or x==m or y<0 or y==n: #越界。if list[x][y]>=v: #增大返回0。最后返回X,y点的最大长度l。

2023-12-27 21:17:04 338 1

原创 D6Q1 01背包问题的递归解决与记忆优化递归

通过数组二维数组memo,将递归出来的结果储存在memo[ n ][ w ]中,当重复遍历dg[ n ][ w ]时,即可直接调用,跳过递归计算,节省时间。memo=[[0]*(w+1) for x in range(n+1)]#定义n+1行w+1列的二维数组储存。memo[n][w]=result#储存当重量为个数为n,重量为w的价值。tmp2=dg(n-1,w-wl[n])+vl[n]#放。tmp2=dg(n-1,w-wl[n])+vl[n]#放。vl=[0,5,3,5,3,2]#各商品价值。

2023-12-26 16:18:55 25 1

原创 D5Q2移除石子使总数最小

未通过,超出时间限制,代码时间复杂度为o(n^2),题目定义数组范围10^5,时间复杂度需要优化。使用最大堆将石子堆降序排列,通过k次将堆[0]减少一半,再入堆,最后输出堆值的和。- 对第 3 堆石子执行移除操作,石子分布情况变成 [4,3,3,- 对第 2 堆石子执行移除操作,石子分布情况变成 [5,4,- 对第 2 堆石子执行移除操作,石子分布情况变成 [4,3,- 对第 0 堆石子执行移除操作,石子分布情况变成 [- 对第 0 堆石子执行移除操作,石子分布情况变成 [堆石子中的石子数量。

2023-12-24 17:50:23 26

原创 D5Q1收集足够苹果的最小花园周长

链接:https://leetcode.cn/problems/minimum-garden-perimeter-to-collect-enough-apples/商业转载请联系作者获得授权,非商业转载请注明出处。但是边长为 2 的正方形包含 12 个苹果(如上图所示)。边长长度为 1 的正方形不包含任何苹果。整数坐标处都有一棵苹果树。,且每条边都与两条坐标轴之一平行。给你一个用无限二维网格表示的花园,用数学模型化简各边长包括了多少苹果。周长为 2 * 4 = 8。你将会买下正中心坐标是。

2023-12-24 16:00:46 23

原创 D4Q1美丽塔 II

知识点:单调栈的使用,本题计算任意一个leftsum时将列表索引放入栈,再不断弹出,遇到maxheight[ i ]小于栈顶的maxheight[stack[-1]]时栈顶的索引的位置边的答案值就是leftsum[stack1[-1]]而右边则为(i-stack[-1])*maxheight[stack[-1]]2.当山顶为maxheight的最大值时不一定是最大高度和的山顶,所以想到通过枚举将maxheight的所有值作为山顶计算高度和sum,然后在所有的高度和中选出最大值。你的任务是在坐标轴上建。

2023-12-21 21:10:02 24

原创 D3q2 寻找峰值 II

30 和 32 都是峰值,所以[1,1]和[2,2]都是可接受的答案。3 和 4 都是峰值,所以[1,0]和[0,1]都是可接受的答案。leetcode每日一题2023.12.19。你可以假设整个矩阵周边环绕着一圈值为。其相邻格子(上、下、左、右)的元素。,其中任意两个相邻格子的值都。要求必须写出时间复杂度为。一个 2D 网格中的。

2023-12-20 19:10:44 15 1

原创 D3Q1 判别首字母缩略词

words 中 "alice"、"bob" 和 "charlie" 的第一个字符分别是 'a'、'b' 和 'c'。所以开始我想到把words中的每个单词放入一个新的数组ewords,再把字符串s放入es列表,最后比较ewords[0]和es[i]。后来我发现可以把words当作二维数组直接用words[i][0]即可找到首字母,而且字符串s可以直接当作列表直接用s[i]。words 中 "an" 和 "apple" 的第一个字符分别是 'a' 和 'a'。比较words[i]的首字母和s的各个字母。

2023-12-20 16:50:36 39 1

原创 Day2Q1.寻找峰值

找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回。其中一个峰值肯定是最大值,所以可以直接查找最大值。来源:​leetcode每日一题2023.12.18。需要考虑列表元素较少的特殊情况:【1】或【1,2】或者返回索引 5, 其峰值元素为 6。3 是峰值元素,你的函数应该返回其索引 2。你的函数可以返回索引 1,其峰值元素为 2;峰值元素是指其值严格大于左右相邻值的元素。你必须实现时间复杂度为。的算法来解决此问题。

2023-12-18 21:13:18 75 1

原创 Q1.重排链表

因此比较容易想到的一个方法是,我们利用线性表存储该链表,然后利用线性表可以下标访问的特点,直接按顺序访问指定元素,重建该链表即可。空间复杂度:O(N)O(N)O(N),其中 NNN 是链表中的节点数。我们可以使用快慢指针来 O(N)O(N)O(N) 地找到链表的中间节点。时间复杂度:O(N)O(N)O(N),其中 NNN 是链表中的节点数。时间复杂度:O(N)O(N)O(N),其中 NNN 是链表中的节点数。找到原链表的中点(参考「876. 链表的中间结点」)。空间复杂度:O(1)O(1)O(1)。

2023-12-17 18:45:54 23

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除