数组

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相关推荐

  1. 8. 返回数组里出现次数最多的数字_剑指offer 数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  2. 剑指offer 数组中的逆序对

    题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...

  3. 剑指offer:数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  4. [剑指offer] 数组中只出现一次的数字

    本文首发于我的个人博客:尾尾部落 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 解题思路 法一:大家都能想到的HashMap法 法二:异或法 ...

  5. python剑指offer数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  6. 【排序】剑指offer:数组中重复的数字

    对数组进行排序,然后遍历判断,如果两个数相等,那么这两个数一定相邻 代码: class Solution { public:int duplicate(vector<int>& n ...

  7. 剑指offer 数组中的逆数对

    链接:https://www.nowcoder.com/profile/8740530/codeBookDetail?submissionId=9156674 来源:牛客网class Solution ...

  8. 剑指offer——圆圈中最后剩下的数字

    1.如果通过环形列表去模拟圆圈的话,最后时间复杂度为O(mn),而且还需要一个辅助链表来模拟圆圈,空间复杂度为O(n). 2.通过找出递推公式的方法,求得递推公式为 时间复杂度为O(n),空间复杂度为 ...

  9. 剑指offer03.数组中重复的数字

    剑指offer03.数组中重复的数字 题目 第一种解法 第二种解法 第三种解法 值得一提的东西 题目 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的 ...

最新文章

  1. 字节跳动内部 MySQL 学习笔记火了,完整版开放下载!
  2. Apache Thrift - java开发详解
  3. Django之ModelForm验证
  4. chrome插件开发记录(1)——解决问题“清单文件缺失或不可读”
  5. 亲测吃知乎月饼变身“喷射战士”,我给大家科普一下发生甚么事了
  6. python具体有什么用-python是什么意思?python有什么用?
  7. Ubuntu安装smplayer播放器
  8. 关闭NPC call(__)
  9. BZOJ1823:[JSOI2010]满汉全席——题解
  10. 华三服务器linux系统安装u盘,华三H3CR4900服务器安装linux系统
  11. 【matlab】:matlab中不断的出现计算过程怎么办
  12. 共轭梯度法Matlab的实现
  13. 【渗透测试】kali使用教程(一):常用命令和基本工具使用
  14. Eclipse LDT 安装
  15. 微信小程序ios端唤醒不了拨打电话或者部分电话拨打不了解决方案
  16. 密码学课程设计之DES对称加密
  17. alibaba-COLA框架module分析
  18. 点击按钮复制微信号/公众号,并打开微信APP搜索H5如何制作。
  19. 使用决策树算法评估汽车等级
  20. Android动画实战-仿简聊App动画菜单

热门文章

  1. 一款全新的基于IntelliJ和ReSharper的跨平台.NET IDE
  2. 解决夜神模拟器无法联机调试 adb server version (**) doesn't match this client (**); killing...
  3. C#中泛型在Class上的实现
  4. SQL分组处理气象数据及注意事项
  5. C语言试题三十一之判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。
  6. C和指针之字符串简单实现 strcpy、strcat、strstr函数
  7. python桌面程序开发_程序员之路:python3+PyQt5+pycharm桌面GUI开发
  8. js input 自动换行_矿用自动灭火装置水基型自动灭火装置原理国内分析研讨_搜狐汽车...
  9. linux命令行设置编码,编码样式-Linux命令行开关和参数是否有标准?
  10. 李宏毅Reinforcement Learning强化学习入门笔记