码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LeetCode 961. N-Repeated Element in Size 2N Array


    You are given an integer array nums with the following properties:

    • nums.length == 2 * n.
    • nums contains n + 1 unique elements.
    • Exactly one element of nums is repeated n times.

    Return the element that is repeated n times.

    Example 1:

    Input: nums = [1,2,3,3]
    Output: 3
    

    Example 2:

    Input: nums = [2,1,2,5,3,2]
    Output: 2
    

    Example 3:

    Input: nums = [5,1,5,2,5,3,5,4]
    Output: 5
    

    Constraints:

    • 2 <= n <= 5000
    • nums.length == 2 * n
    • 0 <= nums[i] <= 104
    • nums contains n + 1 unique elements and one of them is repeated exactly n times.

    其实就是找一个数组里重复出现的数字/出现次数超过一半的数字。最简单的做法就是用一个set存出现过的数字,如果有重复出现的就return。

    1. class Solution {
    2. public int repeatedNTimes(int[] nums) {
    3. Set<Integer> set = new HashSet<>();
    4. for (int i : nums) {
    5. if (set.contains(i)) {
    6. return i;
    7. }
    8. set.add(i);
    9. }
    10. return -1;
    11. }
    12. }

    然后solutions里还有一种巧妙(并很难想)的解法。看了解答也看了老半天才看懂。它的思想大概是这样的:如果这个数组长度为2n,那么我们把它拆成n个两个一组的pair,那么要么就是每个pair里有一个我们要找的数字x,要么某个pair里就会两个都是x。假如是第一种情况,那么考虑到两个pair(也就是四个数字),最坏情况下就是x在第一个和最后一个,which is [x,a][b,x]。因此在所有情况下,每check连续的四个数字,如果有一个数字出现了两次,那这个数字就是x了。具体还能再简化成,只要check i和i - 1、i - 2这连续的三个数字就行,唯独只有上面列出的情况(which is x在第一个)才会有连续三个里都没有重复的的情况。

    1. class Solution {
    2. public int repeatedNTimes(int[] nums) {
    3. for (int i = 2; i < nums.length; i++) {
    4. if (nums[i - 2] == nums[i] || nums[i - 1] == nums[i]) {
    5. return nums[i];
    6. }
    7. }
    8. return nums[0];
    9. }
    10. }

  • 相关阅读:
    推荐系统-召回-概述(一):内容为王
    vscode 1.70变化与关注点(人工折叠/粘性滚动等)
    代码示例:基于JAX-WS和JAXB,其中http请求和响应的报文体都是xml数据
    2374. 边积分最高的节点
    【Linux】Ubuntu20.04版本安装谷歌中文输入法【教程】
    基于SpringBoot的共享单车管理系统
    在量化交易市场中常见的对冲策略类型有哪些?
    jmeter提取request body中的数据,作为下个接口的入参
    基于CNTK/C#实现逻辑回归【附源码】
    2019 CCPC女生赛 Function
  • 原文地址:https://blog.csdn.net/qq_37333947/article/details/127925046
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号