剑指offer-数组中的重复的数字-p39
数组
c++中的STL中的vector
(STL中的vector每次扩容量时,新的容量都是之前一次的两倍)
在c/c++中,数组和指针是相互关联又有区别的两个概念。
关联:当我们声明一个数组时,其数组的名字也是一个指针,该指针指向数组的第一个元素。我们可以用一个指针来访问数组。
#include<iostream>
using namespace std;
int GetSize(int data[])
{return sizeof(data);
}
int main()
{int data1[]={1,2,3,4,5};int size1=sizeof(data1);int *data2=data1;int size2=sizeof(data2);int size3=GetSize(data1);cout<<size1<<","<<size2<<","<<size3<<endl;system("pause");
}
这里是因为作者的编辑环境是在win64,vscode编译器下。
data1是一个数组,sizeof(data1)是求数组的大小int类型的常量是占四个字节的,5*4=20;
data2声明为指针,尽管它指向了数组的第一个数字,但他的本质任然是一个指针,在64位操作系统上,对任意指针求sizeof,得到的结果都是8;
在c/c++中,当数组作为函数的参数进行传递时,数组就自动转换为同类型的指针。因此,尽管函数GetSize的参数data被声明为数组,但他会退化为指针,size3的结果为8;
题目1:找出数组中的重复的数字
在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
例如:如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。
思路:
暴力的解法
1.排序 时间复杂度O(nlogn);
2.哈希表 空间复杂度O(n);
更好的解决方法:
剑指offer-数组中的重复的数字-p39相关推荐
- 8. 返回数组里出现次数最多的数字_剑指offer 数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 剑指offer 数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- 剑指offer:数组中重复的数字
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...
- [剑指offer] 数组中只出现一次的数字
本文首发于我的个人博客:尾尾部落 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 解题思路 法一:大家都能想到的HashMap法 法二:异或法 ...
- python剑指offer数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 【排序】剑指offer:数组中重复的数字
对数组进行排序,然后遍历判断,如果两个数相等,那么这两个数一定相邻 代码: class Solution { public:int duplicate(vector<int>& n ...
- 剑指offer 数组中的逆数对
链接:https://www.nowcoder.com/profile/8740530/codeBookDetail?submissionId=9156674 来源:牛客网class Solution ...
- 剑指offer——圆圈中最后剩下的数字
1.如果通过环形列表去模拟圆圈的话,最后时间复杂度为O(mn),而且还需要一个辅助链表来模拟圆圈,空间复杂度为O(n). 2.通过找出递推公式的方法,求得递推公式为 时间复杂度为O(n),空间复杂度为 ...
- 剑指offer03.数组中重复的数字
剑指offer03.数组中重复的数字 题目 第一种解法 第二种解法 第三种解法 值得一提的东西 题目 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的 ...
最新文章
- 字节跳动内部 MySQL 学习笔记火了,完整版开放下载!
- Apache Thrift - java开发详解
- Django之ModelForm验证
- chrome插件开发记录(1)——解决问题“清单文件缺失或不可读”
- 亲测吃知乎月饼变身“喷射战士”,我给大家科普一下发生甚么事了
- python具体有什么用-python是什么意思?python有什么用?
- Ubuntu安装smplayer播放器
- 关闭NPC call(__)
- BZOJ1823:[JSOI2010]满汉全席——题解
- 华三服务器linux系统安装u盘,华三H3CR4900服务器安装linux系统
- 【matlab】:matlab中不断的出现计算过程怎么办
- 共轭梯度法Matlab的实现
- 【渗透测试】kali使用教程(一):常用命令和基本工具使用
- Eclipse LDT 安装
- 微信小程序ios端唤醒不了拨打电话或者部分电话拨打不了解决方案
- 密码学课程设计之DES对称加密
- alibaba-COLA框架module分析
- 点击按钮复制微信号/公众号,并打开微信APP搜索H5如何制作。
- 使用决策树算法评估汽车等级
- Android动画实战-仿简聊App动画菜单
热门文章
- 一款全新的基于IntelliJ和ReSharper的跨平台.NET IDE
- 解决夜神模拟器无法联机调试 adb server version (**) doesn't match this client (**); killing...
- C#中泛型在Class上的实现
- SQL分组处理气象数据及注意事项
- C语言试题三十一之判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。
- C和指针之字符串简单实现 strcpy、strcat、strstr函数
- python桌面程序开发_程序员之路:python3+PyQt5+pycharm桌面GUI开发
- js input 自动换行_矿用自动灭火装置水基型自动灭火装置原理国内分析研讨_搜狐汽车...
- linux命令行设置编码,编码样式-Linux命令行开关和参数是否有标准?
- 李宏毅Reinforcement Learning强化学习入门笔记