• 总是忘了一些条件的判断,比如非空或者其他之类。
 #include<iostream>
using namespace std; int Frepeat(int num[],int length)
{
if(num == nullptr && length <)
{
return -;
} for(int i = ;i <length ;i++)
{
if(num[i] < || num[i]>= length)
return -;
}
//int n[] = new int[length -1]();// 这里显示类型不匹配 cannot convert from int * to int [] int *n = new int[length -](); for(int i = ;i < length ;i++)
{
int d = num[i];
n[d]++;
if(n[d] > )
{
return d;
}
}
return -;
} int main()
{
int a[] = {,,,,,,};
int result = Frepeat(a,);
cout << result;
system("pause");
}
  • new数组的写法是

    int *a = new int[n]

    int *a = new int(n)

    只申请了一个对象,并且把初值设成了n...

  • new申请的空间是返回一个指针
  • int n[]  ,这样的数组只有在函数的函数中才能指针化数组,其他的情况下,都不是指针。
 int Frepeat02(int num[],int length) //改变原始数组的位置
{
if(num == nullptr && length <)
{
return -;
} for(int i = ;i <length ;i++)
{
if(num[i] < || num[i]>= length)
return -;
} for(int i = ;i <length; i++)
{
while(num[i] != i)
{
if(num[ num[i] ] == num[i]) //这里就是交换的两个下标的值相等
{
return num[i]; } //int temp = num[i]; 这里并没有交换啊 陷入死循环的
//num[i] = num[ num[i] ];
//num[ num[i] ] = temp; int temp = num[i];
num[i] = num[ temp ];
num[ temp ] = temp;
}
}
return -;
}
 int  Fcount(int *num,int length ,int Start, int mid)
{
if(num == nullptr && Start < && mid <Start)
{
return -;
}
int count = ;
for(int i = ;i< length ;i++)
{
if(num[i] >= Start && num[i]<= mid)
count++;
}
return count;
} int Frepeat_nochange(int num[],int length) //不改变原始数组的位置 采用的是二分查找方法
{
if(num == nullptr && length <= )
{
return -;
} for(int i = ;i <length ;i++)
{
if(num[i] < || num[i]>= length)
return -;
}
int Start = ;
int End = length - ;
while(Start <= End)
{
int mid = (End - Start)/ + Start;
int count = Fcount(num,length,Start,mid);
if(Start == End )
{
if(count >)
return Start;
else
return -;
}
if(count > mid -Start +)
End = mid;
else
Start = mid + ; }
return -; }

面试题3--数组中的重复数字(new数组的新写法)的更多相关文章

  1. lintcode :Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II

    题目: 删除排序数组中的重复数字 II 跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2, ...

  2. lintcode :Remove Duplicates from Sorted Array 删除排序数组中的重复数字

    题目: 删除排序数组中的重复数字 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成.  样例 ...

  3. C/C++面试之算法系列--去除数组中的重复数字

    去除数组中的重复数字 Sailor_forever  sailing_9806@163.com 转载请注明 http://blog.csdn.net/sailor_8318/archive/2008/ ...

  4. lintcode101 删除排序数组中的重复数字 II

    删除排序数组中的重复数字 II   跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 在:lintcode100删除排序数组中的重复数字 的基础上进行改进. class Solution ...

  5. lintcode100 删除排序数组中的重复数字

    删除排序数组中的重复数字   给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. 您在真实的 ...

  6. lintcode-101-删除排序数组中的重复数字 II

    101-删除排序数组中的重复数字 II 跟进"删除重复数字": 如果可以允许出现两次重复将如何处理? 样例 标签 数组 两根指针 脸书 思路 参照上一篇博客lintcode-100 ...

  7. lintcode-100-删除排序数组中的重复数字

    100-删除排序数组中的重复数字 素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. 样例 给出数组A =[1,1,2],你的函数应该返回长度2,此时 ...

  8. [剑指offer]3.数组中的重复数字

    3.数组中的重复数字 题目 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了 ...

  9. LintCode- 删除排序数组中的重复数字

    题目描述: 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. 样例 给出数组A =[1,1 ...

  10. 删除排序数组中的重复数字 II · Remove Duplicates from Sorted Array II

    重复一次 [抄题]: 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. [思维问题]: [ ...

随机推荐

  1. 303. Range Sum Query - Immutable(动态规划)

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  2. django 后端反向生成url

    导入模块 from django.core.urlresolvers import reverse reverse() reverse(viewname, urlconf=None, args=Non ...

  3. UDP广播-缓冲区过小

    上次介绍到了关于客户端实时刷新摄像头所识别的图片的一些方法,采用了了UDP广播的技术做处理.理论上是没有问题的,将客户端运行在不同电脑上也能很好的看到效果,运行日志也没看出啥问题,结果今天翻看日志的时 ...

  4. linux 运行级别 & 虚拟控制台

     7 个运行级别 #-停机(千万不要把initdefault设置为0) #-单用户模式 #-多用户,没有NFS #-完全多用户模式(标准的运行级) #-没有用到 #-X11(xwindow) #-重新 ...

  5. PyTorch进行深度学习入门

    一.PyTorch是什么? 这是一个基于Python的科学计算软件包,针对两组受众: ①.NumPy的替代品,可以使用GPU的强大功能 ②.深入学习研究平台,提供最大的灵活性和速度 二.入门 ①.张量 ...

  6. Angular ( 一 ) angular的安装

    1. 全局安装angular 脚手架工具 npm install -g @angular/cli 2. 打开到创建目录: 3. 创建项目 ng new my-app 4. 打开项目 5. 安装依赖 n ...

  7. 集束搜索beam search和贪心搜索greedy search

    贪心搜索(greedy search) 贪心搜索最为简单,直接选择每个输出的最大概率,直到出现终结符或最大句子长度. 集束搜索(beam search) 集束搜索可以认为是维特比算法的贪心形式,在维特 ...

  8. 如何实现win7系统多用户同时远程登录

    使用Win7系统的时候,不同的管理账号远程登录桌面时,会把远程登录的人给记下来.如何设置Win7让两个账号的两会话同时存在,且相互之间不冲突. 方法/步骤     第一步:创建需要远程的两个用户账号. ...

  9. 2019-泰迪杯c题数据处理,WGS-84(世界标准地理坐标系) 转为 BD-09(百度地理坐标系)

    2019-泰迪杯c题数据处理,WGS-84(世界标准地理坐标系) 转为 BD-09(百度地理坐标系) 本次泰迪杯的数据为经纬度数据,并且题目给的是WGS-84(世界标准地理坐标系)格式的,所有如果调用 ...

  10. freeswitch 事件命令

    1.uuid_bridge 桥接两条呼叫的腿. Usage: uuid_bridge <uuid> <other_uuid> uuid_bridge至少需要有一条腿是被呼通的. ...