题目一:找出数组中重复的数字.在一个长度为n的数组里的所有数字都在0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数字.例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3. 测试用例: 长度为n的数组里包含一个或多个重复的数字. 数组中不包含重复的数字. 无效输入测试用例(输入空指针:长度为n的数组中包含0~n-1之外的数字) 测试代码: void test(cha…
题目 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数字. 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制: 2 <= n <= 100000 思路一:哈希表 初始化哈希表大小为数组元素大小,初始值为-1(因为数组中所有元素大于0). 遍历数组每个数字n,如果哈希值为0,表示该数字已经存在,直接返回…
问题描述 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数字. 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制: 2 <= n <= 100000 这道题和leetcode 287. 寻找重复数相似: 代码1 时间复杂度\(O(N)\),空间复杂度\(O(N)\). class Solution {…
题目:找出数组中重复的数字. 说明:在一个长度为n的数组里的所有数字都在0~n-1的范围内,数组中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数字.例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那个对应的输出是重复的数字2或3. 分析:关键点:长度为n的数组里的所有数字都在0~n-1的范围内.既然数字都在0-n-1,那么可以将数据放入下标中.若下标中已存在此数,则表明此数据重复.否则,交换numbers[i]    numbe…
数组中重复的数:题目:找出数组中重复的数,题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字.例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3. 分析: <一>首先进行重新排序然后从头进行扫描即可.1.比较下标,如果下标index等于数组num[index]继续比较下一个如果不等于:将index与num[index]比较:如果…
问题描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5   限制: 0 <= 数组长度 <= 50000 这道题和leetcode 315.计算后面较小数字的个数一样. 代码 首先给一个超出时间限制的暴力解法: class Solution { public: int reversePairs(vector<int>& nums) { int…
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左.右.上.下移动一格.如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子.例如,在下面的3x4的矩阵中包含一条字符串"bfce"的路径(路径中的字母用下画线标出).但矩阵中不包含字符串"abfb"的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入这个格子. a b t g c f c s…
问题描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 代码 时间复杂度\(O(N)\),空间复杂度\(O(N)\) class Solution { public: int majorityElement(vector<int>& nums) { map<in…
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. NOTE:给出的所有元素都大于0,若数组大小为0,请返回0. 题目分析 第一种方法:我们发现旋转数组在旋转后,有个分界点,而这个分界点就是最小的那个数. 第二种方法:分析第一种方法,我们发现时间复杂度为O(n),然而利用二分法的话,时间复杂度是可以做到O(logn)的,不…
[简单-剑指 Offer 53 - I. 在排序数组中查找数字 I] 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限制: 0 <= 数组长度 <= 50000 方法1:使用multiset数据结构的count函数,直接计算某个数字在数据结构中的个数 class Solution { public: mu…