标签: 值得二刷

51 篇文章

剑指offer67题-No41-42.和为S的连续正数序列、和为S的两个数字
双指针算法。 法1:直接枚举,从头到尾枚举区间,记录出某段区间的值,如果值==sum,把这段区间的值加入res中。时间复杂度为On√n(n根号n)。因为内层判断不会超过√n次(1+2+3+...+√n > n)。因此空间复杂度为O√n。 vector<vector<int> > FindContinuousSequence(int…
剑指offer67题-No40.数组中只出现一次的数字
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 异或、位运算。 有一个简化版的题目: 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。…
剑指offer67题-No35.数组中的逆序对
归并排序 在合并数组的时候,当发现右边的小于左边的时候,此时可以直接求出当前产生的逆序对的个数。可以参考acwing的题解:AcWing 788. 【算法基础课】逆序对的数量(归并排序) - AcWing #include <vector> class Solution { public: long long merge(vector<…