题目描述 统计一个数字在排序数组中出现的次数。 题解: 使用二分法找到数k然后向前找到第一个k,向后找到最后一个k,即可知道有几个k了 但一旦n个数都是k时,这个方法跟从头遍历没区别,都是O(N)的复杂度 可以再次利用二分法,在第一次找到k的左半部分使用二分法找到不再出现k的位置,其右半部份类似。 ...
分类:
编程语言 时间:
2019-10-20 01:20:13
阅读次数:
112
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前 ...
分类:
编程语言 时间:
2019-10-13 19:00:52
阅读次数:
78
删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums = [1,1,1,2,2,3], 函数应返回新长 ...
分类:
编程语言 时间:
2019-10-11 23:43:56
阅读次数:
123
假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O ...
分类:
编程语言 时间:
2019-10-11 21:54:05
阅读次数:
111
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 ...
分类:
其他好文 时间:
2019-10-11 14:11:11
阅读次数:
73
题目1:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 测试代码: ...
分类:
编程语言 时间:
2019-10-10 22:08:29
阅读次数:
139
开源地址: "https://github.com/jiauzhang/algorithms" 题目描述 示例 解题思路 示例代码 c++ class Solution { public: int removeDuplicates(vector& nums) { if (nums.size() ...
分类:
编程语言 时间:
2019-10-10 17:25:27
阅读次数:
140
35# 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。 思路:遍历数组,找到目标值或发现第一个大于目标值的值,则返回当前位置,未找到则返回数组长度 py3: 看到评论区的一个另一种方式 ...
分类:
编程语言 时间:
2019-10-08 21:46:56
阅读次数:
92
排序过程 对一组数据排序,例如 【5 、2、3、1、4】 第一轮排序后 【2、3、1、4、5】 第二轮排序后 【2、1、3、4、5】 第三轮排序后 【1、2、3、4、5】 数组的冒泡排序 上述代码,外层循环控制循环的次数,最坏的情况下循环10次排序完成;内层循环控制比较个数;flag用来判断是否发生 ...
分类:
编程语言 时间:
2019-10-06 16:32:21
阅读次数:
77