• 总是忘了一些条件的判断,比如非空或者其他之类。
 #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. arm浮点运算

    首先总结一下计算机中的浮点数的存储. 浮点数的标准是IEEE-754,规定了浮点数的存储都是通过科学计算法来存储的,n2-e的表示. 浮点数首先分为,定浮点(fixed-point)和浮点(float ...

  2. day18 python之re模块与正则表达式

    正则表达式 正则表达式,就是匹配字符串内容的一种规则. 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...

  3. Orange Greenworks

    对于steam游戏开发,成就功能是必不可少的. 而Rpgmaker系列无自带的插件或指令实现,且多数游戏作者并无熟练的脚本编写能力,所以~~ 我们要使用外部插件----Orange  Work. 这里 ...

  4. Install rapyuta client on Ubuntu14.04

    # -Rapyuta-installation-in-Ubuntu14.04-LTS-Trusty-This gzip folder is a tested version which can ins ...

  5. c#基础之abstract和interface

    一.abstract abstract 的词义是“抽象”,它用来定义抽象类.抽象类不能被实例化只能被继承. 定义抽象类的格式如下:public abstract ClassName{……} 注意:只有 ...

  6. mysql zip包安装,本地安装两个mysql

    1.进入mysql下载页面下载zip包 https://dev.mysql.com/downloads/mysql/ 2.zip解压,解压后的目录 3.新建my.ini文件 [mysql] defau ...

  7. prometheus监控

    一. 部署prometheus 1.1 下载 wget https://github.com/prometheus/prometheus/releases/download/v2.7.1/promet ...

  8. Gatling实战(三)

    无论是性能测试还是自动化测试,有一个很重要的点就是变量(参数化),因为真实环境是很少同时产生并发很高而且所有参数都一模一样的请求的,就算有这样的接口,开发肯定用缓存来挡了,这种一般不会是瓶颈,真正瓶颈 ...

  9. Hadoop-Impala学习笔记之管理

    配置参数管理 待补充... 资源分配管理(Admission Control) Impala有资源池的概念,允许某些查询在特定的资源池执行,不过在白天不跑批/晚上不跑adhoc的DSS系统中,该机制并 ...

  10. [译]RabbitMQ教程C#版 - 主题

    先决条件 本教程假定 RabbitMQ 已经安装,并运行在localhost标准端口(5672).如果你使用不同的主机.端口或证书,则需要调整连接设置. 从哪里获得帮助 如果您在阅读本教程时遇到困难, ...