- 博客(8)
- 收藏
- 关注
原创 力扣100题---贪心
贪心思想在于:当遍历到当前能跳的最远位置时,进行一次跳跃,并更新当前位置为下一步能跳的最远位置。在最后我进行一下总结,这四道题从题目上看起来风格不太相同,和昨天二分那些大同小异的题目不太一样,但是如果你能看出来题目可以使用贪心的思想去做,那就可以立即做一个for循环,然后在遍历过程中动态的更新最大或最小值即可,所以这样看来,其实贪心也是有模板的。这里把字符作为了唯一的键,因为字符会不断重复,而在字典中遇到重复的键时,值会替换为最后来的那一个,因此正好可以记录每个字母最后一次出现的索引。
2025-04-05 14:26:56
334
原创 力扣100题---二分
本来笔者今天打算写贪心,但是写到后面两题发现有些用例怎么都调都过不了,于是就来看看二分,没想到1个小时就把这6道二分的题目刷完了。二分的普适性不是很好,只能在有序的序列中才能使用,但是可以人为地使数列变得有序,所以二分也是常考的题目。给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(log n)的算法。21这是一道标准的二分,但是是我收益最大的一题。
2025-04-04 17:30:16
496
原创 力扣100题---双指针
这里使用的是快慢指针的形式,因为“必须在不复制数组的情况下原地对数组进行操作”,而快慢指针就很好地解决了这个问题,因为有一个快指针走在前面(进行逻辑判断),而慢指针在后面(做值的覆盖),所以就不用担心会覆盖有用值。最后总结一下,双指针并不是想象中的那样简单,每道题情况不一样,双指针的设计也不一样,也没有对哪一种题型掌握这一说,只能多加练习,让自己变得更熟练。具体在本题中,快指针找到不为0的值,就覆盖慢指针处的数据,快指针走到尽头时,快慢指针已经把所有不为0的值安排到位了,两指针之间的值就全部是0了。
2025-04-03 17:45:34
537
原创 力扣100题---哈希(算法向)
因此在遍历过程中,如果遇到了“相同”的单词,则这个单词会被加入到和他一样但其实“不一样”的那个列表中,如果没有遇到“相同”的单词,它就会作为该列表中的第一个单词作为键(注意这里一个单词也是列表形式),最后在输出结果时也要注意列表形式。根据我的观察,哈希用在查找最为普遍,本题是要找出目标值分解后的两数的索引,如果使用列表遍历,那就会超时,但是如果使用字典(哈希表),在一次遍历过程中(在生成哈希表的过程)中找到答案,返回索引。比如在进行查找时,相比遍历,哈希表以O(n)的复杂度减少了运行时间。
2025-04-02 11:44:59
369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人