首页 > 其他分享 >剑指Offer——03.数组中重复的数字(c语言)

剑指Offer——03.数组中重复的数字(c语言)

时间:2023-04-22 14:13:38浏览次数:41  
标签:03 数字 Offer 重复 int 数组

title: 剑指Offer 03.数组中重复的数字(c语言)

找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例1:

输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3 

限制:
$$
2 \leqslant n \leqslant 100000
$$
代码如下:

int findRepeatNumber(int* nums, int numsSize){
    if(NULL==nums || numsSize<=0){
        return -1;
    }

    for(int i=0; i<numsSize; ++i)
    {
        while(nums[i] != i)
        {
            if(nums[i] == nums[nums[i]]){
                return nums[i];
            }
            int tmp = nums[nums[i]];
            nums[nums[i]] = nums[i];
            nums[i] = tmp;
        }
    }
    return -1;
}

执行结果:

通过

显示详情

执行用时:52 ms, 在所有 C 提交中击败了20.04%的用户

内存消耗:10.3 MB, 在所有 C 提交中击败了56.46%的用户

标签:03,数字,Offer,重复,int,数组
From: https://www.cnblogs.com/blue-Suri/p/17342964.html

相关文章

  • 剑指Offer——05.替换空格(c语言)
    title:剑指Offer05.替换空格(c语言)请实现一个函数,把字符串s中的每个空格替换成"%20"。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."限制:$$0\leqslants的长度\leqslant10000$$代码如下:char*replaceSpace(char*s){if(NULL==s){return......
  • 剑指Offer——53-II. 0~n-1中缺失的数字(c语言)
    title:剑指Offer53-II.0~n-1中缺失的数字(c语言)一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例1:输入:[0,1,3]输出:2示例2:输入:[0,1,2,3,4,5,6,7,9]输......
  • 剑指Offer——10-II.青蛙跳台阶问题(c语言)
    title:剑指Offer10-II.青蛙跳台阶问题(c语言)一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。答案需要取模1e9+7(1000000007),如计算初始结果为:1000000008,请返回1。示例1:输入:n=2输出:2示例2:输入:n=7输出:21示例3:输入:n......
  • 剑指Offer——24.反转链表(c语言)
    title:剑指Offer24.反转链表(c语言)定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL限制:$$0\leqslant节点个数\leqslant5000$$代码如下:/***Definitionforsingly-linkedlist.......
  • 牛客网——数组中出现次数超过一半的数字
    title:牛客网——数组中出现次数超过一半的数字题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例:输入[1,2,3,2,2,2......
  • 力扣——240.搜索二维数组II(c语言)
    title:力扣——240.搜索二维数组II(c语言)同《剑指offer》04题目描述:编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找
    1、算法描述在数组中逐个查找元素,即遍历。2、思路原理如算法描述,基本是最简单的代码块了,没有什么额外的原理。3、初步的代码实现线性查找法初步的代码实现:packagecom.mosesmin.datastructure.week01.chap02;/***@Misson&Goal代码以交朋友、传福音*@ClassNameLinearSearc......
  • 二维数组
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(void){ intarr[4][3]= { {12,23,43}, {22,43,55}, {45,57,76}, {54,53,79} }; intsum=0; inti,j; for(i=0;i<3;i++) { for(j=0;j<4;j++) {  sum+=ar......
  • c 数组名和指针的区别
    关于c中数组名和指针的区别我写了一下程序进行测试并就自己的理解做了详细的解释,供自己以后复习,大佬批评指正和需要的网友参考学习。环境:gcc(mingw或cygwin)代码:1#include<stdlib.h>2intmain(intargc,charconst*argv[])3{4intarr[10]={23456,3,4,5,6,......
  • 物联网---03.Modbus协议实现与设备的通讯,收发信息,实现对设备信息的采集
    一、扫盲:什么是modbus?       Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议    Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通......