LeetCode961 重复 N 次的元素
问题: 重复 N 次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。
返回重复了 N 次的那个元素。
示例 1:
输入:[1,2,3,3]
输出:3
示例 2:
输入:[2,1,2,5,3,2]
输出:2
示例 3:
输入:[5,1,5,2,5,3,5,4]
输出:5
提示:
4 <= A.length <= 100000 <= A[i] < 10000A.length为偶数
链接:https://leetcode-cn.com/contest/weekly-contest-116/problems/n-repeated-element-in-size-2n-array/
分析:
0.AC做法,将数据排序,统计每个元素的个数,一旦某一个是N,返回这个数字。
1.2N个元素中有N+1个不同的元素,且一个元素重复了N次,则这个重复了N次的必定是唯一众数,且除非是最大值或者最小值,否则也必定是中数。
比赛期间尝试直接返回中位值,不过失败了,没继续深入,现在想来,只有是最大值或者最小值的时候才会失败,完全可以只统计最大值个数,最小值个数,如果有一个是N,返回,否则返回排序后中间的那个数字。
AC Code:
class Solution {
public:
int repeatedNTimes(vector<int>& A) {
if (A.size() == )
{
return A[];
}
int ret = ;
sort(A.begin(), A.end());
//ret = A[A.size() / 2];
int num = ;
ret = A[];
for (unsigned int i = ; i < A.size(); i++)
{
if (A[i] != ret)
{
ret = A[i];
num = ;
}
else
{
num++;
if (num == A.size() / )
{
return ret;
}
}
}
return ret;
}
};
赛后AC code
class Solution {
public:
int repeatedNTimes(vector<int>& A) {
if (A.size() == )
{
return A[];
}
int ret = ;
sort(A.begin(), A.end());
int num = A[];
int times = ;
for (int i = ; i < A.size(); i++)
{
if (num != A[i])
{
if (times == A.size() / )
{
return A[];
}
break;
}
else
{
times++;
}
}
num = A[A.size() - ];
times = ;
for (int i = A.size()-;i>= ;i--)
{
if (num != A[i])
{
if (times == A.size() / )
{
return num;
}
break;
}
else
{
times++;
}
}
ret = A[A.size() / ];
return ret;
}
};
其他:
1.简单的题,随便就过了,如果对时间有要求的话,可能就得用第二种方法才能过了。
不考虑太多,统计每个元素个数就够了。
2.第一code:
class Solution:
def repeatedNTimes(self, A):
"""
:type A: List[int]
:rtype: int
"""
n = len(A)//
l = dict()
for e in A:
if e in l:
l[e] +=
else:
l[e] =
for e in l:
if l[e] == n:
return e
统计个数找个数是N的,可能都没怎么多想吧
第二code:
class Solution(object):
def repeatedNTimes(self, A):
"""
:type A: List[int]
:rtype: int
"""
d = set()
for num in A:
if num not in d:
d.add(num)
else:
return num
感觉更有意思一点,2N个元素,N+1个不同,其中一个还是有N个元素的,那么其他的都是只有一个元素,那么完全可以更快:答案必定是A[A.size()/2]和A[A.size()/2-1]中的一个,如果两者相同,即为结果,否则如果A[A.size()/2-1]==A[A.size()/2-2],是答案,否则A[A.size()/2]是答案。
LeetCode961 重复 N 次的元素的更多相关文章
- [Swift]LeetCode961. 重复 N 次的元素 | N-Repeated Element in Size 2N Array
In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeate ...
- jquery 实现重复点击一个元素时不重复执行效果
jquery 实现重复点击一个元素时不重复执行效果 这需要用到jquery的stop方法 实例 停止当前正在运行的动画: $("#stop").click(function(){ ...
- 用JS编写一个函数,返回数组中重复出现过的元素
用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: , , , , , , , ]; var getRepeat = function (arr) { var obj = {}; , le ...
- vector是序列式容器而set是关联式容器。set包含0个或多个不重复不排序的元素。
1.vector是序列式容器而set是关联式容器.set包含0个或多个不重复不排序的元素.也就是说set能够保证它里面所有的元素都是不重复的.另外对set容器进行插入时可以指定插入位置或者不指定插入位 ...
- Leetcode961. N-Repeated Element in Size 2N Array重复N次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次. 返回重复了 N 次的那个元素. 示例 1: 输入:[1,2,3,3] 输出:3 示例 2: 输入:[2,1,2, ...
- Java实现找出数组中重复次数最多的元素以及个数
/**数组中元素重复最多的数 * @param array * @author shaobn * @param array */ public static void getMethod_4(int[ ...
- 【python cookbook】【数据结构与算法】10.从序列中移除重复项且保持元素间顺序不变
问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1.如果序列中的值时可哈希(hashable)的,可以通过使用集合和生成器解决.
- 力扣(LeetCode) 961. 重复 N 次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次. 返回重复了 N 次的那个元素. 示例 1: 输入:[1,2,3,3] 输出:3 示例 2: 输入:[2,1,2, ...
- 961.重复N次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次. 返回重复了 N 次的那个元素. 示例 1: 输入:[1,2,3,3]输出:3示例 2: 输入:[2,1,2,5, ...
随机推荐
- ubuntu 更改源
1) 备份原来的源 cp /etc/apt/source.list /etc/apt/source.list.old 2) 用下面的文件覆盖 /etc/apt/source.list # 163(非教 ...
- intellijidea课程 intellijidea神器使用技巧2-1 无处不在的跳转
idea快捷键(基于windows平台) 1 书签跳转 Ctrl alt [ ] ==> 项目之间的跳转 Ctrl shift E ==> 文件之间的跳转(最近编辑的文件) Ctrl ...
- view 状态动画
stateListAnimator 一.xml配置 方法 res/xml/animate_scale.xml <?xml version="1.0" encoding=&qu ...
- react-native 视频播放器(很不错哦)
第一步: npm i -S react-native-af-video-player(安装前:先安装: react-native-video.react-native-keep-awake.react ...
- html和java的交互,利用jsBridge开源框架
html中,js注册监听和回调 function connectWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBrid ...
- [QualityCenter]QC是什么?发展历程是怎样?
QC,即Quality Center,是一个基于Web的测试管理工具.它可以组织和管理应用程序测试流程的所有阶段,包括制定测试需求.计划测试.执行测试和跟踪缺陷.此外,通过Quality Center ...
- JDBC源码解析
参考:https://blog.csdn.net/silviakafka/article/details/46225045
- Laravel 获取当前 Guard 分析 —源自电商购物车的实际需求
iBrand 产品中关于购物车的需求比较复杂,我们基于 overture/laravel-shopping-cart 扩展出了更加符合电商需求的购物车包,之前有文章进行过简单的介绍: Laravel ...
- npm升级自身
参考:https://github.com/felixrieseberg/npm-windows-upgrade Usage First, ensure that you can execute sc ...
- excel跨表查询数据
环境:公司部分部门进行商品盘点,店铺经理要求不经过系统进行盘点,全程采用excel表格处理所示: 左图为总表,右图为首饰部门录入的数据 需求:找出盘点差异(即首饰部商品数量是否和 ...