给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数组作为答案。 示例: 提示: ...
分类:
编程语言 时间:
2019-01-28 00:59:07
阅读次数:
158
题目说明 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 解法1 时间复杂度:O(n) 空间复杂度:O(1) 思路:利用数组为有序数组这一条件。使用双指针, ...
分类:
其他好文 时间:
2019-01-26 11:19:09
阅读次数:
181
题目说明 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 解法1 时间复杂度:O(n) 空间复杂度:O(1) 思路:使用双指针,第一个指针j表示调整后的数组最后一个位置,第二个指针i遍历原数组。 当nums[i]与nums[j]不等时,直接添加即 ...
分类:
其他好文 时间:
2019-01-26 10:56:40
阅读次数:
198
/*给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。*//*/思路:简单链表置换 为了操作方便,定义三个指针,... ...
分类:
编程语言 时间:
2019-01-23 22:36:24
阅读次数:
166
方法:双指针法 算法 数组完成排序后,我们可以放置两个指针 ii 和 jj,其中 ii 是慢指针,而 jj 是快指针。只要 nums[i] = nums[j]nums[i]=nums[j],我们就增加 jj 以跳过重复项。 当我们遇到 nums[j] \neq nums[i]nums[j]??=nu ...
分类:
编程语言 时间:
2019-01-23 22:35:29
阅读次数:
188
给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 这里需要指出的是 n&1 其实是进行二进制的各个位数相与。等价于 n%2 ...
分类:
编程语言 时间:
2019-01-20 18:55:45
阅读次数:
183
#include<stdio.h> /*第一种形式实现计数排序计数排序后的顺序为从小到大arr[0...len-1]为待排数组,每个元素均是0-k中的一个值brr[0...len-1]为排序后的输出数组crr[0...k]保存0...k中每个值在数组arr中出现的次数*/ void Count_So ...
分类:
编程语言 时间:
2019-01-17 23:48:44
阅读次数:
228
leetcode-35.搜索插入位置 题意 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 示例 2: 示例 3: 示例 4: 算法 ...没有,实在太简单。 code ...
分类:
其他好文 时间:
2019-01-17 21:12:04
阅读次数:
168
leetcode-26.删除重复数组中的重复项 题意 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 示例 2: 说明: 为什么返回数值是整数, ...
分类:
编程语言 时间:
2019-01-16 21:42:51
阅读次数:
188
冒泡算法的原理: 比较相邻的两个数字,如果第一个数字比第二个数字大,则交换它们位置 从开始第一对比较到结尾最后一对,最后一个数字就是最大数 除了最后一个数字,再次从开始第一对比较到最后一对,得出第二大的数字 重复上面操作,直到没有任何一对数字需要比较 举例说明:要排序数组:int[] arr={6, ...
分类:
编程语言 时间:
2019-01-11 16:03:41
阅读次数:
170