给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 class Solution { public int removeDuplicates(int[] num ...
分类:
编程语言 时间:
2019-12-30 23:34:31
阅读次数:
138
/** * 快速排序 */ public class QuickSort { public static void main(String[] args) { /** * 定义一个无序数列 */ int[] arr = {22,1,9,67,33,31,17}; System.out.println ...
分类:
编程语言 时间:
2019-12-30 22:53:00
阅读次数:
68
[toc] 26,27删除数组重复项 题目 题目26 给定一个排序数组,你需要在 原地删除 重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例: 给定数组 nums = [1,1,2], ...
分类:
编程语言 时间:
2019-12-30 09:43:42
阅读次数:
90
直接选择排序 数组分成有序区和无序区,初始时整个数组都是无序区,然后每次从无序区选一个最小的元素直接放到有序区的最后,直到整个数组变有序区。 选择排序的步骤是这样的: 首先,找到数组中最小的元素,将它和数组的第一个元素交换位置。 第二步,在剩下的元素中继续寻找最小的元素,和数组的第二个元素交换位置。 ...
分类:
编程语言 时间:
2019-12-29 23:32:06
阅读次数:
114
题目描述 给定一个无序数组arr,其中元素可正、可负、可0。给定一个整数k,求arr所有的子数组中累加和小于或等于k的最长子数组长度 要求 时间复杂度为O(n),空间复杂度为O(n) 示例 输入描述 第一行两个整数N, k。N表示数组长度,k的定义已在题目描述中给出 第二行N个整数表示数组内的数 输 ...
分类:
编程语言 时间:
2019-12-27 13:50:01
阅读次数:
93
链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的 ...
分类:
编程语言 时间:
2019-12-25 01:40:40
阅读次数:
81
链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 ...
分类:
编程语言 时间:
2019-12-25 01:18:38
阅读次数:
104
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = ...
分类:
编程语言 时间:
2019-12-24 23:51:02
阅读次数:
184
题目 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。 编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。 示例 1: 输入: nums = [2,5,6, ...
分类:
编程语言 时间:
2019-12-19 12:54:53
阅读次数:
67
在进入二分查找模块之前,我们先看一下二分查找的思想. 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3, ...
分类:
其他好文 时间:
2019-12-17 18:53:25
阅读次数:
140