Category

算法学习

共 15 篇文章

算法学习2298 字131 阅读

算法分析-数组中的第K个最大元素

今天尝试:数组中的第 K 个最大元素。 给定整数数组 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 $O(n) $的算法解决此问题。 第一眼没认真读题——返回数组第 k 大的,那不就是排序后直接返回 不就行了。 提交通过,正好奇这个题为什么这么简单,仔细看题发现要求时间复杂度为 $O(n…

算法学习939 字191 阅读

算法分析-每日温度

今天继续研究算法:每日温度。 给定一个整数数组 ,表示每天的温度,返回一个数组 ,其中 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 一读题目感觉很简单,就只用操作一个数组,但是想优雅的完成,还是需要耗费一点脑细胞。 先写个暴力破解进入状态: 时间复杂度是 $O(n²) $(更具体来说是$n²/2$,大 O 里常数 1/2 被忽略)。 又遇…

算法学习726 字182 阅读

算法分析-相交链表

今天继续研究算法,是一个链表的题目,我对链表还不是很熟悉:相交链表。 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。你能否设计一个时间复杂度 O(m + n) 、仅用 O(1) 内存的解决方案? 开始我想的思路是,既然要相交节点的值,那么从尾巴往前遍历不就很方便了。但是忽略了这不是数组,单链表没有 指针,…

算法学习1412 字132 阅读

算法分析-三数之和

最近在学python,研究个算法来练练手:三数之和。 看题目我想出了两种思路: 思路1:列出所有可能的三元组,去重,计算和是否为0。比较暴力,可能的组合太多,消耗太大。 思路2:两两组合求和,再在剩余的数组中看是否有能加起来为0的项,消耗也不少,但是先试试。 双层遍历两两组合,使用拿到索引后,内部循环使用切片来避免重复组合。表示从索引的下一个位置开始到数组末尾的所有元素。 下一步是在数组中寻找是否…

算法学习#算法267 字100 阅读

算法分析-两数之和

今天做一个简单算法题:两数之和 给定一个整数数组 和一个整数目标值 ,请你在该数组中找出和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。 看到这个题一般会想到双重遍历,两两组合等于 就返回下标。但是这样太不够优雅。 我们只需要把遍历过的数放到字典中,将它作为 、它的下标作为 。后面遍历的数中,如果在字典里有…