没有合适的资源?快使用搜索试试~ 我知道了~
数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。 数据结构是为算法服务的,算法是要作用再特定的数据结构上的。 最常用的数据结构预算法: 数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Tire树 算法: 递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
资源推荐
资源详情
资源评论
最新版数据结构与算法�试题�册V1.1
题�来源�络,涉版权问题联系删除
�
参考回答:
数组的特点:
数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何
元素。数组的插入数据和删除数据效率低,插入数据时,这个位置后面的数据在内存中都要向后移。
删除数据时,这个数据后面的数据都要往前移动。但数组的随机读取效率很高。因为数组是连续的,
知道每一个数据的内存地址,可以直接找到给地址的数据。如果应用需要快速访问数据,很少或不
插入和删除元素,就应该用数组。数组需要预留空间,在使用前要先申请占内存的大小,可能会浪
费内存空间。并且数组不利于扩展,数组定义的空间不够时要重新定义数组。
链表的特点:
链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。比如:上一个元
素有个指针指到下一个元素,以此类推,直到最后一个元素。如果要访问链表中一个元素,需要从
第一个元素开始,一直找到需要的元素位置。但是增加和删除一个元素对于链表数据结构就非常简
单了,只要修改元素中的指针就可以了。如果应用需要经常插入和删除元素你就需要用链表数据结
构了。不指定大小,扩展方便。链表大小不用定义,数据随意增删。
各自的优缺点
数组的优点:
1.
随机访问性强
2.
查找速度快
数组的缺点:
1.
插入和删除效率低
2.
可能浪费内存
最新版数据结构与算法�试题�册V1.1
1.1 | 数组(�)
请你回答�下Array&List, 数组和链表的区别
3.
内存空间要求高,必须有足够的连续内存空间。
4.
数组大小固定,不能动态拓展
链表的优点:
1.
插入删除速度快
2.
内存利用率高,不会浪费内存
3.
大小没有固定,拓展很灵活。
链表的缺点:
不能随机查找,必须从第一个开始遍历,查找效率低
�
参考回答:
1
2
3
4
5
6
7
8
9
10
11
�
在�个⻓度为n的数组�的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道
有�个数字是重复的。也不知道每个数字重复�次。请找出数组中第�个重复的数字。 例如,
如果输�⻓度为7的数组[2,3,1,0,2,5,3],那么对应的输出是第�个重复的数字2。没有重复
的数字
返回
-1
。
示例1
输�
1
输出
1
参考回答:
直接使用map,遍历一遍数组,当第一次出现重复的值时,此时map值大于1,直接返回得到答
案
1
2
�组有序数(从�到�排列),有负有正,找出绝对值最�值
数组中重复的数字
class Solution
{ public:
2
[2,3,1,0,2,5,3]
int i = 0;
while( a[i] < 0){
i++;
}
if(a[i] + a[i-1] <= 0)
return a[i];
else
return a[i-1];
链 接 :https://www.nowcoder.com/questionTerminal/bde7945561b546baa3b79b8d5850
来源:牛客
复的数,请说一下你的思路并手写代码
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
链 接 :https://www.nowcoder.com/questionTerminal/6fe361ede7e54db1b84adc81d09d8
524
来源:�客�
�
参考回答:
把每个数放到自己对应序号的位置上,如果其他位置上有和自己对应序号相同的数,那么即为有重
复的数值。时间复杂度为O(N),同时为了节省空间复杂度,可以在原数组上进行操作,空间复 杂
度为O(1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
一个长度为N的整形数组,数组中每个元素的取值范围是[0,n-1],判断该数组否有重
/**
*
代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
*
@param numbers int整型vector
*
@return int整型
*/
int duplicate(vector<int>& numbers)
{ if(numbers.size()<=1) return -1;
// write code here
unordered_map<int,int> map;
for(int i =
0;i<numbers.size();i++){ map[numbers[i]
]++; if(map[numbers[i]]>1) return
numbers[i];
}
return -1;
}
};
bool IsDuplicateNumber(int *array, int n)
{
if(array==NULL) return false;
int i,temp;
for(i=0;i<n;i++)
{
while(array[i]!=i)
{
if(array[array[i]]==array[i])
return true;
temp=array[array[i]];
array[array[i]]=array[i];
array[i]=temp;
}
}
return false;
}
� 写�个算法,可以将�个�维数组顺时针旋转90度。
参考回答:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
�
参考回答:
1
2
3
4
5
6
7
�
参考回答:
1
2
3
4
5
6
7
8
1.2 | 数组(�)
�个数组,除�个元素外其它都是两两相等,求那个元素?
找出数组中和为S的�对组合,找出�组就�
public void
rotate(int[][] matrix) {
int n = matrix.length;
for (int i = 0; i < n/2; i++)
{ for (int j = i; j < n-1-i;
j++)
{
int temp = matrix[i][j];
matrix[i][j] =
matrix[n-1-j][i];
matrix[n-1-j][i] =
matrix[n-1-i][n-1-j];
matrix[n-1-i][n-1-j] =
matrix[j][n-1-i];
matrix[j][n-1-i] = temp;
}
}
}
public int[]
twoSum(int[] nums, int target)
{ HashMap<Integer, Integer>
map =
new HashMap<Integer, Integer>();
int[] a = new int[2];
map.put(nums[0], 0);
for (int i = 1; i < nums.length;
i++) {
public static int find1From2(int[]
a){ int len = a.length, res =
0; for(int i = 0; i < len;
i++){
res= res ^ a[i];
}
return res;
}
9
10
11
12
13
14
15
16
17
18
19
�
参考回答:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
�
参考回答:
1
2
3
4
5
6
7
8
9
10
11
求�个数组中连续�向量的最�和
寻找�数组中前K个最�的数
if (map.containsKey(target - nums[i]))
{ a[0] = map.get(target -
nums[i]);
a[1] = i;
return a;
} else {
map.put(nums[i], i);
}
}
return a;
}
public int
findKthLargest(int[] nums, int k)
{ if (k < 1 || nums == null) {
return
0;
}
return getKth(nums.length - k +1, nums, 0,
nums.length - 1);
}
public int
maxSubArray(int[] nums) {
int sum = 0;
int maxSum = Integer.MIN_VALUE;
if (nums == null || nums.length == 0)
{ return sum;
}
for (int i = 0; i < nums.length;
i++) {
sum += nums[i];
maxSum = Math.max(maxSum, sum);
if (sum < 0) {
sum = 0;
}
}
return maxSum;
}
剩余111页未读,继续阅读
资源评论
哈哈哈一下
- 粉丝: 22
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功