题目要求:去除所有数组内与所给值相等的元素,并且返回新数组的长度。个人解法:1.定义一个int len=nums.length当有nums[i]==value时,len--,但是这个仅仅是返回新数组的长度,并没有做到剔除相等元素参考解法:1.核心在于,i的值从前往后,len的值从后往前2.i在外循环...
分类:
其他好文 时间:
2015-08-08 06:39:50
阅读次数:
119
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5324题意:给你一个二维的序列,让你找出最长的第一维升第二维降的子序列(如果多个答案,输出字典序最小)解:考虑从后往前dp,在u点你需要知道u点之后的比u的第一维大,第二维小的dp最大值可以用分治枚举u点...
分类:
其他好文 时间:
2015-08-04 00:26:54
阅读次数:
133
在直接插入排序的基础上,利用二分(折半)查找算法决策出当前元素所要插入的位置。
二分查找:找到中间元素,如果中间元素比当前元素大,则当前元素要插入到中间元素的左侧;否则,中间元素比当前元素小,则当前元素要插入到中间元素的右侧。
找到当前元素的插入位置i之后,把i和high之间的元素从后往前依次后移一个位置,然后再把当前元素放入位置i。
public class SortMethods {
...
分类:
编程语言 时间:
2015-08-01 17:23:42
阅读次数:
158
例:长度为N的数组,把奇数放到数组的前面,偶数放到数组的后面 空间复杂度为O(1)核心思想是:定义两个指针,一个指针A从前往后扫描,一个指针B从后往前扫描。指针A扫描到偶数暂停,指针B扫描到奇数暂停,然后交换着两个数,交换之后继续如上述扫描和交换,直到指针A和指针B重合停止。C语言中&表示按位与,0...
分类:
编程语言 时间:
2015-08-01 07:39:16
阅读次数:
108
题意:n个时刻点,m次时光穿梭,告诉每次穿梭的起点和终点,q次询问,每次询问t时刻t之前有多少时刻点是可以通过两种不同的路径到达的。
思路:对于询问的时刻t可以顺时间向后推移到t+1,t+2,t+3.。。。。。那么t时刻及以后的时刻的穿梭都是可能的,把他们能穿梭到的时刻插入multiset,如果multiset里有至少两个元素的值大于等于t,则该时刻t存在解。另外注意的是,询问的时刻点靠前的都可以到达靠后的,所以我们得从后往前求解。...
分类:
其他好文 时间:
2015-07-27 09:31:33
阅读次数:
109
给一个字符串,计算最少加多少个字符能够使字符串变成回文串(即从前往后读与从后往前读一样)。
有2种思路,一种是直接区间DP,dp[j][i]表示[i,j]这个子串要变成回文串需要添加多少个字符,状态转移方程
如下:
if(s[i]==s[j])
dp[j][i]=dp[j+1][i-1];
else
dp[j][i]=1+min(min[j+1][i],min[j][i-1])
第二种思路也比较容易想,要将一个字符串变为回文串,那么我们...
分类:
编程语言 时间:
2015-07-27 00:19:30
阅读次数:
239
希尔排序法的基本思想是:先选定第一个整数,把待排序文件中所有记录分成个组。如下图,第一个整数分为有序组,其余为无序组。
每次处理就是将无序组中的第一个数,与有序组的元素从后往前一次比较,找到合适位置插入,即完成一次处理;这样一直重复下去,直到无序组中没有元素为止。如下图,已清除描述。
排序的目的就是为了使无序数列变为有序数列。希尔排序法,一开...
分类:
编程语言 时间:
2015-07-22 18:57:52
阅读次数:
180
刚开始还以为用位运算与或几下几个循环就搞定了,算着算着发现不行........ 还是一种固定的切题角度,我假设有长度为n,总的排列数位f(n),怎么算他呢?从后往前考虑,因为大多数情况,都是用前面的结果推后面的结果, 那么当第n位是m的时候,如果我知道f(n-1)等于多少,那么f(n-1)的排列.....
分类:
其他好文 时间:
2015-07-16 13:38:05
阅读次数:
99
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一...
分类:
编程语言 时间:
2015-07-15 15:11:28
阅读次数:
142
刚开始还以为用位运算与或几下几个循环就搞定了,算着算着发现不行........ 还是一种固定的切题角度,我假设有长度为n,总的排列数位f(n),怎么算他呢?从后往前考虑,因为大多数情况,都是用前面的结果推后面的结果, 那么当第n位是m的时候,如果我知道f(n-1)等于多少,那么f(n-1)...
分类:
其他好文 时间:
2015-07-15 12:37:47
阅读次数:
90