- 博客(8)
- 收藏
- 关注
原创 冒泡排序优化版
每次只对未排序区间的元素进行比较和交换,并且记录最后一次交换的位置。因为从这个位置之后的元素都是已经排好序的,所以下一轮遍历时只需要遍历到这个位置即可。last_changed_index = 0 # 初始化最后一次交换的位置last_changed_index = j # 更新最后一次交换的位置n = last_changed_index # 下一轮只需遍历到上次交换的位置return lst。
2025-03-22 22:47:57
287
原创 有序数组的平方,双指针法
给你一个按排序的整数数组nums,返回组成的新数组,要求也按排序。力扣题目连接平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]
2025-03-21 15:13:57
203
原创 双指针之滑动窗口
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。
2025-03-20 20:59:25
484
1
原创 移除数组中的元素,快慢指针法
给你一个数组nums和一个值val,你需要移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。你的函数函数应该返回 k = 2, 并且 nums中的前两个元素均为 2。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。
2025-03-16 21:20:09
452
原创 python二分查找法
特点初始化时,left指向数组的第一个元素,right指向数组的最后一个元素。循环条件是,这意味着当left等于right时,仍然需要检查这个位置的元素。更新规则:示例代码return midelse:return -1 # 如果未找到目标值# 测试示例print(binary_search_closed_interval(arr, 5)) # 输出: 4print(binary_search_closed_interval(arr, 11)) # 输出: -1。
2025-03-14 10:39:50
336
原创 python列表list的常用方法
在Python中,数组(通常指的是列表 `list`)是使用非常广泛的数据结构。虽然Python标准库中也有专门的数组模块 `array`,但大多数情况下,开发者更倾向于使用功能更丰富的列表类型。
2025-03-13 20:52:41
1162
原创 python的列表推导式和lambda表达式
推导式是用来创建列表,字典,和集合的。推导式其实就是for循环,只不过把代码写简单了一点。循环嵌套的推导式相当于是两层for循环,无论是几层循环,都可以加上条件过滤if 语句 其作用和循环里面加上if语句作用一样。我们通常用这样一个语句i for i in range(5)。这里的range()可以换成任何可以迭代的数据结构。里面的参数也必须和前面的重名,意思是把里面的参数i赋值给外面的参数i。当你想生成的数据结构是列表和集合时外面的参数只有一个,如果你想生成字典,外面的参数形式就要变成x:y。
2025-03-08 19:05:50
1219
原创 给一个值在数组中找出两数之和与它相等
我们在同一个数组中想找两个数,我们可以把数分为已经找到的和未找到的。把已经找到的放在另外一个存储数据的类型中,根据题目方程式,每次新循环的元素和前面·已经找到的看能否组成方程式。暴力解法很容易想到,题目方程式是x+y=target 我们要在找到x的情况下再找到y,满足前面等式即可,因此两层循环即可把数组中所有的两两组合找到。if target - x in idx: # 在左边找 nums[i],满足 nums[i]+x=target。idx[x] = j # 保存 nums[j] 和 j。
2025-03-04 18:18:54
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅