数组
文章平均质量分 54
nepu_bin
前方的路没有答案,只有走着走着才有了答案
展开
-
优雅求解超级水王问题
超级水王问题描述:在一个数组中,如果存在一个数,在该数组中出现的次数大于数组长度的一半,那么这个数就是超级水王数。给定一个数组,要求在O(N)的时间复杂度下找出超级水王数,如果不存在,则返回-1.暴力求解乍一看,超级水王数???很高端的词诶,但是在看完描述之后那种害怕的感觉直接就消散而去,这不就简简单单的计数问题吗?的确,最容易也是最直观的想法是用一个哈希表记录各个数值以及对应出现过的次数,如果在遍历过程中发现某数已经出现次数超过数组长度的一半了,就可以直接返回答案了。贴上代码:int getS原创 2021-08-12 22:22:08 · 216 阅读 · 1 评论 -
单调数列
单调数列如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。示例 1:输入:[1,2,2,3]输出:true示例 2:输入:[6,5,4,4]输出:true示例 3:输入:[1,3,2]输出:false力扣原题传送本题的关键是原创 2021-02-02 21:45:20 · 1003 阅读 · 0 评论 -
最小K个数设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。
力扣面试题 17.14. 最小K个数设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]提示:数组内的数输出顺序可以不同。0 <= len(arr) <= 1000000 <= k <= min(100000, len(arr))使用堆排序使用原数组的前k个元素创建一个最大堆,剩余元素与最大堆的首元素比较,若较之更小,则与之替换,遍历后就可以得到原数组原创 2021-01-22 18:21:25 · 884 阅读 · 0 评论 -
找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-all-numbers-d原创 2021-01-21 21:39:00 · 815 阅读 · 0 评论