数组刷题


leetcode刷题第一天

数组类题目

1两数之和

题目

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

思路

第一种暴力求解

首先对数组元素遍历,第一遍每一次得到一个数,之后进行第二次遍历,将剩下的数字与每一次第一遍的数进行相加,与目标值进行比较,得到即返回数组下标值

可修改处:

1.若每种输入不只会对应一个答案,修改方案如何?

2.把两数之和扩展为n数之和,如何进行优化?

第一种暴力求解代码

C语言版

1

第二种先排序再查找

可解决第一个问题,处理多答案的方案

首先复习一下排序的知识

排序算法包括内部排序,外部排序

插入 交换 选择 其他 外部
直接插入 冒泡 简单选择 归并 多路归并
折半插入 快速 堆排序 基数
希尔

之后是查找的知识

1.顺序查找法

2.分块查找发

3.折半查找法

4.树形查找

5.b树

6.哈希表

第三种哈希表

哈希表知识学习


文章作者: eopeak
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 eopeak !
  目录