其中j用于指在最后一个不同元素的位置上,i用于向后寻找,找到第一个不相等的元素,存入j所指元素的后一位上,最终返回j+1即为所求数组的长度。 ...
分类:
编程语言 时间:
2019-11-04 21:57:30
阅读次数:
131
假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组?[0,1,2,4,5,6,7]?可能变为?[4,5,6,7,0,1,2]?)。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 1?。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是?O( ...
分类:
编程语言 时间:
2019-11-02 22:00:43
阅读次数:
81
原文链接:https://www.cnblogs.com/DarrenChan/p/8807112.html 这三个排序的时间复杂度都是O(nlogn),所以这里放到一起说。 回到顶部 1. 快速排序# 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange s ...
分类:
编程语言 时间:
2019-11-02 15:57:28
阅读次数:
116
题目描述: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], ta ...
分类:
编程语言 时间:
2019-10-31 21:31:15
阅读次数:
65
给定一个排序数组,需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度 数组nums=[0,0,1,1,1,2,2,3,3,4] 函数应该返回新的长度为5,并且原数组nums的前五个元素被修改为0,1,2,3,4。不要使用额外的数组空间,必须在原地修改输入数据并在O(1)额外 ...
分类:
编程语言 时间:
2019-10-31 16:21:58
阅读次数:
101
LeetCode,JavaScript,从排序数组中删除重复项 ...
分类:
编程语言 时间:
2019-10-28 10:57:42
阅读次数:
110
1.题目描述: 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 2.解题思路及代码: 看到O(n log n)时间复杂度,第一时间想到用归并排序或者快排,但是链表交换节点太麻烦,遂选择归并排序 用归并排序排序数组难点在于如何快速找到链表中点,便于后续递归调用。后来看了题解 ...
分类:
编程语言 时间:
2019-10-25 23:09:11
阅读次数:
109
问题:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/submissions/ GitHub实现:https://github.com/JonathanZxxxx/LeetCode/blob/master/Class33 ...
分类:
编程语言 时间:
2019-10-23 14:00:06
阅读次数:
117
1、题目 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。 2、思路 思 ...
分类:
编程语言 时间:
2019-10-22 22:23:54
阅读次数:
100
1.算法思路: (1)将待排序数组分为两份,利用递归将两份数组排好序 (2)将两个有序数组归并成一个有序数组。 实现方法: a.设置两个指针,分别指向两个数组的开头,比较指针所指向的数字,将较小的数字加入一个辅助数组中,指针前移,直到其中一个指针溢出 b.将未溢出的数组剩余的元素加入辅助数组中 c. ...
分类:
编程语言 时间:
2019-10-22 21:56:43
阅读次数:
108