文件名称:leetcode答案-hello-algo:算法训练,ContinueFighting
文件大小:75KB
文件格式:ZIP
更新时间:2024-07-19 19:02:54
系统开源
leetcode 答案 Hello algo * Array 找出数组中重复的数字() 找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 使用辅助集合 (时间复杂度:O(n) , 空间复杂度:O(n) ) 利用输入数组的元素范围在0 ~ n-1的特性,将值为i的元素放至index为i的位置 当index为i的元素值已经为i时,元素重复 不重复则交换nums[i] 与 nums[nums[i]](每次交换都会使一个nums[i]=i成立) 数组中的第K个最大元素() 在未排序的数组中找到第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 快排减治 堆 旋转数组的最小数字() 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,