[基本思想] 关键:在前面已经排好序的序列中找到合适的插入位置 步骤: 1. 从第一个元素開始,该元素能够觉得已经排好序。 2. 取出下一个元素。在已经排好序的元素序列中从后往前扫描进行比較。 3. 假设该元素(已排序) 大于新元素,则将该元素移到下一位置。 4. 反复步骤3,直到找到已排序的元素小 ...
分类:
编程语言 时间:
2017-05-06 14:12:25
阅读次数:
154
快速排序算法: 通过一次排序将数组分为独立的两部分,一部分均比关键字小,另一部分均比关键字大,再递归对每部分进行关键字排序。 关键字排序:把数组第一个数拿出来做关键字key,数组前后分别设置low,hig指针;将key与hig指针的值从后往前比较,如果key<指针hig的值,hig--,反之交换值; ...
分类:
编程语言 时间:
2017-05-05 20:59:51
阅读次数:
246
一、 题目 将给定的两个排好序的数组合并成一个有序数组。 二、 分析 看到题目后感觉非常easy。就是比較两个数组中的元素嘛,可是刚開始发现假设合并到A[]中从前到后的话可能会导致原数据该,如何才干避免这样的错误呢?于是想到了逆向合并,从后往前填入数组。 class Solution { publi ...
分类:
其他好文 时间:
2017-05-03 10:29:49
阅读次数:
156
链接: http://poj.org/problem?id=2182 题意: 有N头牛,编号1~N,乱序排成一列,现在已知每头牛前面有多少头牛比它的编号小, 求排队后从前往后数,每头牛的编号 题解: 从后往前扫描,遇到数字a,说明它是剩余序列中的第a+1个数,找到改编号并删除。 代码: ...
分类:
其他好文 时间:
2017-04-29 18:45:24
阅读次数:
152
题目 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the ...
分类:
其他好文 时间:
2017-04-23 13:21:42
阅读次数:
164
恐怖故事,开场,我从后往前读题。 看到$M$,我感觉上好像会做,但不知道是不是最优策略。跳过。 看到$L$,我感觉上好像是找规律,算了几个样例,发现可能是那个规律,没仔细思考。跳过。 这时候,$xiang578$偷偷摸摸$AC$了一题。 $Occult$看了$E$题。可以写,先跳过。 紧接着,有人过 ...
分类:
其他好文 时间:
2017-04-23 10:42:37
阅读次数:
165
http://poj.org/problem?id=1833 题意: 给出一个排序,求出它之后的第k个排序。 思路: 排序原理: 1、如果全部为逆序时,说明已经全部排完了,此时回到1~n的排序。 2、从后往前找到第一对 ai<ai+1,然后从i+1~n寻找比ai大的最小的数并与之互换,之后再对i+1 ...
分类:
编程语言 时间:
2017-04-22 15:49:05
阅读次数:
206
后缀数组+二分 1. 从后往前贪心扫 当必须分的时候就分一段 注意比较两个串大小时的细节 2. 先二分这个串第一次出现时在后缀数组上的位置 再二分具体是哪个串 从前往后扫,使右端点不断往左缩,当 右<=左 时分一段 快的飞起 1. 2. ...
分类:
其他好文 时间:
2017-04-20 10:18:11
阅读次数:
112
众所周知,快速排序的核心是分治的思想,选一个基准出来,然后通过划分操作,使得,该元素最终处于的位置的左边的元素都小于等于它,右边的元素都大于等于它 划分操作就是两次递归嘛,没什么的,关键在于不借助外部空间我们如何实现划分操作 首先我们不知道该元素放在哪里,显然这是最后才能确定的, 我了解到一种填坑法 ...
分类:
编程语言 时间:
2017-04-17 23:52:37
阅读次数:
410
【题目描述】MergetwogivensortedintegerarrayAandBintoanewsortedintegerarray.合并两个排序的整数数组A和B变成一个新的数组。【题目链接】http://www.lintcode.com/en/problem/merge-two-sorted-arrays/【题目解析】A和B都已经是排好序的数组,我们只需要从后往前比较就可以..
分类:
其他好文 时间:
2017-04-16 10:12:51
阅读次数:
137