剑指 Offer 39. 数组中出现次数超过一半的数字 地址:剑指 Offer 39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5 ...
分类:
编程语言 时间:
2021-01-18 10:36:12
阅读次数:
0
思路: 一般我们会想到用排序,然后找出中间那个值,此值就是超过一半的那个数 但是这样的时间复杂度一般为O(nlogn) 其实有一个比较巧妙的办法,时间复杂度为O(n) 1,遍历这个数组,如果之前一个数字和下一个数字重复则+1,否则-1 这样最终留下的数就是那个超过一半的那个数 代码 void mor ...
分类:
编程语言 时间:
2020-11-04 18:37:41
阅读次数:
17
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解题思路 排序后遍历(相当于简化后的暴力)O(logn) 数组特点O(n) 上代码(C+ ...
分类:
编程语言 时间:
2020-08-20 19:17:56
阅读次数:
74
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 我的理解 找到数组中超过一半的数,即众数。设置一个变量tmp保存当前假设认为是 ...
分类:
编程语言 时间:
2020-08-11 00:27:06
阅读次数:
58
数组中出现次数超过一半的数字 题目链接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/ 题目内容:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 ...
分类:
编程语言 时间:
2020-07-21 22:51:19
阅读次数:
94
题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题思路: 由于要寻找的是出现次数超 ...
分类:
编程语言 时间:
2020-07-17 14:03:08
阅读次数:
55
题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2 来源:力扣(LeetCode)链接:https://leetcode-cn.com/p ...
分类:
编程语言 时间:
2020-07-14 18:05:43
阅读次数:
69
力扣链接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/ 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给 ...
分类:
编程语言 时间:
2020-06-29 09:24:53
阅读次数:
54
题目: 解答: 1 class Solution { 2 public: 3 int majorityElement(vector<int>& nums) 4 { 5 int x = 0; 6 int votes = 0; 7 for(int num : nums) 8 { 9 if(votes = ...
分类:
编程语言 时间:
2020-05-09 16:54:18
阅读次数:
60