zoukankan      html  css  js  c++  java
  • leetcode刷题:数组重复数字

    题目描述:

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

    Input: {2, 3, 1, 0, 2, 5}           Output: 2

    #include<stdio.h>
    void swap(int *nums, int i, int j) 
    {
        int t = nums[i];
        nums[i] = nums[j];
        nums[j] = t;
    }
    int find_same_number(int *num,int len,int *p)
    {
        int i = 0;
        int temp = 0;
        for(i = 0;i< len; ++i)
        {
            printf("num[%d] = %d
    ",i,num[i]);
        }
        for(i = 0;i< len; ++i)
        {
            printf("debug
    ");
            while(num[i] != i)
            {
                
                if(num[i] == num[num[i]])
                {
                    *p = num[i];
                     return 1;
                }
                //swap(num,i,num[i]);
                
                int t = num[i];
                num[i] = num[t];
                num[t] = t;
                
            }
        }
        return 0;
    }
    int main(void)
    {
        int nums[] = {1,2,3,4,5,6,7,3};
        int target;
        int *p = &target;
        int  ret = find_same_number(nums,8,p);
        printf("p = %d
    ",*p);
        return 0;
    }
  • 相关阅读:
    html标签
    正则表达式判断号码靓号类型
    power函数:求底的n次幂
    php5.3的新特性
    xml方式操作txt文件
    什么是闭包?
    php设计模式单例模式
    面试总结
    统计ip代码
    XSL语言学习
  • 原文地址:https://www.cnblogs.com/anitaguangzi/p/13180550.html
Copyright © 2011-2022 走看看