- 博客(28)
- 收藏
- 关注
原创 无重复字符的最大子串
首先定义四个变量,分别为左边界,(整个字符串的长度)右边界,当前无重复最长子串长度以及遍历完整个字符串的最长无重复子串长度。#如果当前左指针指向元素在集合中,说明重复,则从集合中一个个移除元素,直到当前左指针指向的字符不在集合中停止循环。#如果左指针指向的元素不在集合中,则将该元素加入集合,(前面滑动窗口默认加1)#在查找过程中,找出不含重复字符的最长子串长度,要求连续。#定义一个集合,用于存放不重复的子串。#查询遍历元素是否在集合中。#记录滑动窗口的大小。#取滑动窗口的最大值。
2024-09-04 12:09:33 176
原创 力扣225.用两个队列实现栈
总结:1.构建一个双端队列用 a = deque() 2.选择将队列从左边弹出 a.popleft() 3.注意当找寻栈的第一个元素时,将第二个队列中的元素(有且只有一个)弹出加入到第一个队列中(第一个队列中存有栈里元素数量-1个)#A是存放栈前n-1个的队列,B是存放栈最后弹出的元素。
2024-09-03 11:02:07 319
原创 151.反转字符串中的单词
第二步反转字符串,第一个空表示start,第二个空表示end,第三个空表示步长,步长为-1则表示从后往前进行赋值,用于字符串反转。#第三步,拆分单词(将字符串形式变成列表形式),反转每个小部分的单词,并且消除中间部分多余的空格。#第一步去除字符串两侧的空格。
2024-08-30 10:05:52 345
原创 15.三数之和
链接:https://leetcode.cn/problems/3sum/solutions/39722/pai-xu-shuang-zhi-zhen-zhu-xing-jie-shi-python3-by/当 nums[i]+nums[L]+nums[R]==0,执行循环,判断左界和右界是否和下一位置重复,去除重复解。continue 是跳出 i 的一次循环,并不是跳出整个for循环,三元组的三个指针分别为 i ,L = i+1.R = len(nums) -1。对于重复元素:跳过,避免出现重复解。
2024-08-23 21:57:52 243
原创 力扣双指针——移动0
注意:如果要数组赋值,错误的写法是nums = sorted(nums[:slow-1]),而正确的写法是nums[:] = sorted(nums[:slow-1])if nums[fast]!
2024-08-22 22:24:50 191
原创 128.最长连续序列
3.for i in range(1,len(new_array)):不要出现索引越界的情况,这里的 i取值为1到len(new_array)-1。2.从循环中找到最大的连续子序列 最后return max(longest, current)记得提取出最长的子序列。注意问题:1.第一个将数组进行有序排序后,再变成集合的形式(去掉重复的数),new_array = sorted(set(nums))longest = max(current,longest)#里面存储最长的子序列。
2024-08-22 16:42:55 140
原创 49. 字母异位词分组
将 ['a','b','c'] 变成['abc'],运行 b = ''.join(a),b = ['a','b','c']对字符串进行排序,比如 i= ‘acd’, 运行a = sorted(i)后,a = ['a','b','c']
2024-08-21 21:54:53 183
原创 两数之和_哈希表
总结:for index,value in enumerate(nums):这里的enumerate(nums)表示枚举的意思,nums一般是一个数组, index,value分别表示索引和对应的值。
2024-08-21 16:24:31 189
原创 242. 有效的字母异位词
其中Array[ord('i') - ord('a')] +=1这样写是错误的,因为i是个字符变量,是一个不断变化的值,而ord('i')就是一个固定的ASCALL码值,所以之前会出现错误。Array[ord(i) - ord('a')] +=1#在对应26个字母中给相应位置加一。#这里的i是一个字符类型的变量,而不是固定的字符'i',表示固定的值。答:使用了ord()函数,作用是返回ord('字符')的ASCALL码。问题三:解题时使用了哪些python内置函数,作用是什么?问题二:在哪里使用了哈希表?
2024-08-20 16:36:28 218
原创 206.反转链表 +数组合并区间
start , end = interval#只有当interval列表中有两个值时,赋值才正确,当列表中有三个值时,赋值为 start ,middle, end = interval。lastEnd = ans[-1][1]#取intervals中的最后一个列表的末尾界限。错误原因一:定义一个空的结点 pre = ListNode() //知道如何定义。if lastEnd >=start:#相交。else:#不相交直接添加在尾部。
2024-08-19 11:31:17 262
原创 力扣Hot100 之160链表相交_8月18号
2.使用if 和while 循环时和C语言不一样的是,这里不需要使用花括号表示子部分内容,只需要使用缩进就可以,且每一个后面都要跟一个冒号。3.判断链表或者值是否为空时,直接 while n;循环来遍历链表并计算它的长度,而for循环是用来处理可迭代的对象,如元组,字典,字符串等元素。if(lenA>lenB):#B为长的链表。总结: 1. while循环和for循环的用法。
2024-08-18 13:53:20 216
原创 两两交换链表中的节点_07_14
/递归结束条件:头结点不存在或头结点的下一个节点不存在,此时不需要交换,直接返回head。//更改头节点+2位节点后的值,并将头节点的next指针指向这个更改过的list。head->next)//示例二和示例三的情况。//创建一个节点指针类型保存头结点下一个节点。//将新的头结点的next指针指向老的头结点。
2024-07-14 15:45:24 228 1
原创 句子缩写(字符串的强化练习)
总结:string result = "",可以表示一个空的字符串,后面可以加上各种字符,而“a”表示97。//reslut是输出的字符,s是输入赋值的字符。//将输入的字符赋给s。getchar();//一个获得所有字符的函数。//表示输入几组单词。//定义一个函数将小写字母转发为大写字母的函数。
2024-06-16 17:45:35 173
原创 10.平均绩点
/continue关键字的作用是:用来告诉 Python 跳过当前循环代码块中的剩余语句,然后继续进行下一轮循环。//// 字符串读取遇到空格会停止,但应用getline()函数方法会一直读取字符串,直到遇到换行符。总结:读取字符串,最后读到空字符串会继续。
2024-06-15 10:32:57 353
原创 打印正方形
总结:1.使用双层循环嵌套,2有星号的满足 第一行或者最后一行或者第一列或者最后一列。对应的 i==0 || i==n-1|| j==0|| j ==n-1。//n代表正方形的边长。
2024-06-13 11:03:13 165
原创 奇怪的信---代码随想录8
/提前定义变量result,用于存储计算的结果。1. int a = a % 10 获得尾部的最后一个数。2. int a = a /10 获取去掉最后一位的整数。//将整数除以10,以便进行下一步操作。换句话说,这个条件用于把每一位偶数相加到。这段代码中的两种不同的条件语句分别检查了整数。//声名变量n,用于存储输入的整数。//每次循环后输出一个空行。//获取当前最后一位。的值在整数除法中是 0,说明。是正确的选择,因为你希望将。在你的代码上下文中,使用。是否是小于 2 的值。
2024-06-12 09:24:54 337
原创 远程连接autodl的服务器传输文件
给出服务器的站点端口和密码(从audtodl中的SSH中得到):ssh -p 33956 root@connect.westb.seetacloud.com。密码:uxOXxgWMdDsy。
2024-04-23 13:41:31 413
原创 卡码网第一课,学习C++基础
A+B问题I,启发有1.‘函数体’定义是指main(){ }里面花括号的内容。, 这行代码表示程序已经执行完毕,并返回了一个状态码0,这个状态码可以反馈程序的执行状态,在大多数情况下,返回0表示程序正常退出,没有出现错误4.为了避免我们使用的变量和标准库定义的变量名称相同而引起冲突,以及避免不同标准库之间的变量名冲突,标准库定义的所有名字都在命名空间std中,如果我们要使用cin的话,就要先找到命名空间,然后再使用cin。
2023-12-08 21:11:20 96
原创 707 设计链表
1题思路:依次遍历链表结点,然后找到第index的节点,如果index的长度>链表长度,那么索引无效,返回-1,如果找到第index的节点,那么返回第index的节点的值。//将一个值为val的节点插入到链表中下标为index的节点之前,如果index等于链表长度,那么结点会被追加到链表的末尾,如果index大于链表长度则不插入。4.首先判断判断第index个节点是否比0大,如果比0小那么在头部插入节点,然后判断是否比链表长度大,如果长度大于链表长度,则不会插入节点。插入后,新节点将成为链表的第一个节点。
2023-10-12 13:09:58 30
原创 代码随想录第二天
此外,res = [float('inf')] * len(nums), float("inf")表示列表的每个元素都是无穷大。l,r,i = 0,len(nums)-1,len(nums)-1# l表示输入列表的头,r表示输入列表的尾,i表示新的列表的尾。看到题目的第一思路,1.遍历每个数给每个数加个平方, 2再遍历一遍数据,给每个数按照从小到大的顺序进行排序(快排)。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
2023-10-09 09:17:59 186 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人