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

    相关文章

    JavaScript Array.from及其相关用法详解(示例演示)

    《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

    Vue项目中Element UI组件未注册的问题原因及解决方法

    《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

    python中os.stat().st_size、os.path.getsize()获取文件大小

    《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

    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 的版本,方便后续的开发。 升级之后本地简单的过了一遍系统功能,并没有发现有什么不妥,于