数组概念介绍
数据是最简单的数据结构,它占据一块连续的内存并按照顺序存储数据。创建数组时,首先指点数组的容量大小,然后根据大小分配内存。
缺点:空间效率不高。经常有空闲的区域灭有得到充分利用。
优点:时间效率很高。可以根据时间效率高的特点,来实现简单的哈希表:把数组的下标设为哈希表的键值,数组中的每一个数字设为哈希表的值,“键值-值”配对。快速高效。
解决方法: 动态数组。这对时间性能有负面影响,因此使用动态数组时要尽量减少改变数组容量大小的次数。
当我们声明一个数组的时候,其数组的名字也是一个指针,该指针指向数组的第一个元素。
输出为 20,4,4 。data1 是一个数组,sizeof(data1)是求数组的大小。这个数组包含5个整数,每个整数占4个字节,因此共占用20个字节,data2声明为指针,对任意指针求sizeof,得到的结果都是4.**当数组作为函数的参数进行传递的时候,数组就自动退化为同类型的指针。**因此,尽管函数getsize 的参数data被声明为数组,但是它会退化为指针,size4的结果仍然是4.
数组中重复的数字。
# -*- coding:utf-8 -*-
class Solution:
# 这里要特别注意~找到任意重复的一个值并赋值到duplication[0]
# 函数返回True/False
def duplicate(self, numbers, duplication):
# write code here
if numbers is None or len(numbers) == 0:
return False
for i in numbers:
if i < 0 or i >= len(numbers):
return False
for i in range(len(numbers)):
while i != numbers[i]:
if numbers[i] == numbers[numbers[i]]:
duplication[0] = numbers[i]
return True
tmp = numbers[numbers[i]]
numbers[numbers[i]] = numbers[i]
numbers[i] = tmp
return False