一、题目描述
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。
二、解题方法
利用归并排序的思想,先把数组分隔成子数组,先统计出子数组内部的逆序对的数目,然后再统计出两个相邻子数组之间的逆序对的数目。注意在合并两个已排序的子数组后,要更新数组。
class...
分类:
编程语言 时间:
2016-03-18 16:14:20
阅读次数:
167
1.splice方法和slice都是数组的方法 2.splice方法有3种作用 例如,arr=[1,2,3,4,5,6]; 删除 3.slice方法 请注意,该方法并不会修改数组,而是返回一个子数组。 例子: 输出: 作者:smile.轉角 QQ:493177502
分类:
编程语言 时间:
2016-03-18 16:09:09
阅读次数:
154
【选择排序】 a[i++] —> a[n],从前往后看、选择最小值、一次交换到位 1,完整循环找到数组中最小的元素; 2,把这个最小的元素与a[0]交换; 3,在a[i]-an的子数组中重复1-2步骤; 简写: 特点: 选择排序的扫描路线:a[i++] —> a[n] 选择排序是在每个大循环下,通过
分类:
编程语言 时间:
2016-03-17 19:25:12
阅读次数:
263
归并排序: 将待排序的数组划分成若干的子数组使得这些子数组都是有序的,再将这些数组进行并,使得合并后的数组也是有序的,最后得到的数组既是已排好序的数组了 代码如下: 注意:
分类:
编程语言 时间:
2016-03-17 14:44:46
阅读次数:
206
If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle. 思路:这题在刚開始想用双指针解,可是
分类:
编程语言 时间:
2016-03-16 09:34:27
阅读次数:
137
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [?2,1,?3,4,?1,2,1,?5,4],
the contiguous subarray [4,?1,2,1...
分类:
编程语言 时间:
2016-03-11 19:04:57
阅读次数:
212
3.求子数组的最大和 题目: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大 。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4,
分类:
编程语言 时间:
2016-03-09 21:05:48
阅读次数:
193
一、未排序正数数组中累加和为给定值的最长子数组长度 题目: 给定一个数组arr,该数组无序,但每个数都是正数,再给定一个正数K。求arr的所有子数组中所有元素相加和为K的最长子数组长度。 例如: arr=[1,2,1,1,1],K=3, 累加和为3的最长子数组为[1,1,1],return 3。 程...
分类:
编程语言 时间:
2016-02-13 14:32:03
阅读次数:
311
题目: 给定一个无序数组,求出需要排序的最短子数组的长度。 例如:arr={1,5,3,4,2,6,7}返回4,因为只有[5,3,4,2]需要排序。 思路: 解决这个问题可以在时间复杂度为O(N)、额外空间复杂度为O(1)完成。 初始化变量noMinIndex=-1,从右向左遍历,便利的过程记录右侧...
分类:
编程语言 时间:
2016-02-12 01:00:37
阅读次数:
286
这里做个java集合/数组拆分多个子集合/数组的两种实现方式的笔记。方式一:/**
*拆分集合
*@paramdatas
*@paramsplitSize
*@param<T>
*@return
*/
private<T>List<List<T>>spliceArrays(List<T>datas,intsplitSize){
if(datas==null||splitSize&..
分类:
编程语言 时间:
2016-02-01 19:06:46
阅读次数:
331