961. N-Repeated Element in Size 2N Array

2023-12-21 16:39
文章标签 element array size repeated 2n 961

本文主要是介绍961. N-Repeated Element in Size 2N Array,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

961. 重复 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
    

     

    提示:

    1. 4 <= A.length <= 10000
    2. 0 <= A[i] < 10000
    3. A.length 为偶数

    解法一

    //时间复杂度O(n), 空间复杂度O(n)
    class Solution {
    public:int repeatedNTimes(vector<int>& A) {unordered_set<int> us;for(int elem : A) {if(us.count(elem)) return elem;us.insert(elem);}return 0;}
    };

    解法二

    //时间复杂度O(n), 空间复杂度O(1)
    class Solution {
    public:int repeatedNTimes(vector<int>& A) {for(int k = 1; k < 4; k++) {int right = A.size() - k;for(int i = 0; i < right; i++) {if(A[i] == A[i + k]) return A[i];}}return 0;}
    };

    思路:

    解法一

    使用一个额外的哈希表记录出现过的元素,直到遇到一个出现两次的元素,将其返回。

    这个解法利用了隐含条件:除了要求的元素以外其他元素均只出现一次,所以如果遇到重复一次的元素,那它一定是要求的N-Repeated Element。

    解法二

    为了节省空间,使用三次遍历,分别检查以步长k(1、2、3)为间隔的连续元素是否相同,如果有就将其返回。

    这个解法利用了这样一个隐含条件:对于长为n(n > 2且为偶数)的数组,出现次数为n / 2的元素在每相邻四个元素中至少出现2次。

    注:如果题上的重复n次条件变为重复n + 1次,这个题目就变成了第169题求众数,使用摩尔投票法可以一次遍历完成求解。

    2019/08/18 15:29

    这篇关于961. N-Repeated Element in Size 2N Array的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/520734

    相关文章

    element-ui下拉输入框+resetFields无法回显的问题解决

    《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

    android.database.CursorIndexOutOfBoundsException: Index 5 requested, with a size of 5

    描述: 01-02 00:13:43.380: E/flyLog:ChatManager(963): getUnreadChatGroupandroid.database.CursorIndexOutOfBoundsException: Index 5 requested, with a size of 5 01-02 00:13:43.380: E/flyLog:ChatManager(

    java中的length与length()与size()

    正确用法 Array.length int[] arr = {1,2,3};int x = arr.length;//arr.length = 3 String.length() String s = "123";int x = s.length();//s.length() = 3 Collection.size() ArrayList<Integer> list = n

    【uva】11536-Smallest Sub-Array(区间移动问题)

    一个区间移动的问题,1A了,感觉没什么好说的。。 13975926 11536 Smallest Sub-Array Accepted C++ 0.809 2014-08-01 11:00:20 #include<cstdio>#include<cstring>#include<iostream>using namespace std;#define INF 1 << 30

    leetCode#448. Find All Numbers Disappeared in an Array

    Description Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. Find all the elements of [1, n] inclusive that do not appear in this

    leetcode#496. Next Greater Element I

    题目 You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1’s elements in the corresponding places of nums

    element-ui打包之后图标不显示,woff、ttf加载404

    1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格,发现项目中无法生效,定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14,然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 element-ui 的版本,方便后续的开发。 升级之后本地简单的过了一遍系统功能,并没有发现有什么不妥,于

    做一个问卷考试,标准答案对比用户填写的答案,array_diff 进行差集比对

    if( empty(array_diff($answer_mark, $answer)) && empty(array_diff( $answer,$answer_mark))){//用户答题正确}else{// 答题错误} 做一个问卷考试,标准答案对比用户填写的答案,array_diff  进行差集比对   如用户填写的答案变量为answer   标准答案为answer_mark

    Qt放Element网页滑动菜单栏

    基于QTabWidget实现菜单 tabwidget.h #ifndef TAB_WIDGET_H#define TAB_WIDGET_H#include <QTabWidget>#include <QVariantAnimation>#include "customcomponent_global.h"class TabBarAnimation;class TabWidget : pu

    选取训练神经网络时的Batch size ,BatchNorm

    BatchNorm 优点:对于隐藏层的每一层输入,因为经过激活函数的处理,可能会趋向于大的正值和负值,容易出现梯度下降和梯度消失。所以强行拉回到服从均值为0,方差为1的标准正态分布,避免过拟合 缺点:正是因为这种强行改变分布的手段,使得隐层输入和原始数据分布差异太大,如果数据量不大时,容易欠拟合。可能不用更好一些 https://www.zhihu.com/search?type=conte