摘要:
动态规划一.动态规划含义:在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都要做出决策,从而使整个过程达到最好的活动效果.因此,各个阶段决策确定后,组成一个决策序列,因而也就确定了整个过程的一条活动路线.这种把一个问题看作是一个前后关联具有链状结构的多阶段过程,就称为多阶段决策过程,这种问题称为多阶段决策问题. 在多阶段决策问题中,各个阶段采取的决策,一般来说是和时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有"动态"的含义,我们称这种解决多阶段决策最优化的过程为动态规划.二 阅读全文
摘要:
编程之美2.16 最长递增子序列:写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中的最长递增子序列的长度。例如:在序列1,-1,2,-3,4,-5,6-7中,其最长的递增子序列为1,2,4,6分析:利用动态规划分析。用A[i]来更新maxLen和MaxV:,从A[0]~A[i-1]可能存在多个存在多个子问题的最优解,所以需要将他他们合并为一个。1. 当A[i]>MaxV[maxLen](即子问题最优解的最小值)时,maxLen++ && MaxV[maxLen] = a[i] A[i]>MaxV[maxLen]时,A[i]必然比MaxV[0]-MaxV[ 阅读全文
摘要:
对于很多精妙的题目,常常在想这些出题的童鞋是怎么想到的,因为这些题目确实能够很深入的考察出一个面试者的逻辑,算法和思维功底。本文章主要是总结自己在做这些面试题和了解相应解法的过程中思考的一些东西,感觉这些东西在很多题目中都出现过,非常值得抽象出来专门理解。 一 双指针遍历 所谓双指针,是利用两个指针对一个有序数组进行遍历,查找出符合要求的数据集合。相信大家都接触到了这种思维模式的解题方法,只是没有注意到罢了。下面举几个例子吧。 例1:给定一个数组a[n],求数组中是否存在两个数的和等于给定值sum并输出?编程之美 2.12 快速寻找满足条件的两个数 这个问题很常见,我当年在面试微软实习... 阅读全文
摘要:
问题一:一个有N个整数元素的一维数组(A[0],A[1]....,A[n-2],A[n-1]),求子数组之和的最大值是什么?方法一:动态规划问题描述符合动态规划最优子结构的要求。设b[i]表示以a[i]结尾 的子数组的最大子段和(a[i]一定包含在b[i]中,即:b[i]=max{sum(a[j~i])},其中0Max{sum, Max{a[i], b[i-1]+a[i]}}1. 包含a[i],即求b[i]的最大值,在计算b[i]时,可以考虑以下两种情况,因为a[i]要求一定包含在内,所以 1) 当b[i-1]>0,b[i] = b[i-1]+a[i] 2) 当b[i-1]sum ,即b 阅读全文
摘要:
《编程之美》 2.21只考加法的面试题我们知道:1+2 = 3;4+5 = 9;2+3+4 = 9。等式的左边都是两个或两个以上连续的自然数相加,是不是所有的整数都可以写成这样的形式呢?问题1: 对于一个64位正整数,输出它所有可能的连续自然数(两个以上)之和的算式。问题2: 大家在测试上面程序的过程中,肯定会注意到有一些数字不能表达为一系列连续的自然数之和,例如32好像就找不到。那么,这样的数字有什么规律呢?能否证明你的结论?问题3: 在64位正整数范围内,子序列数目最多的数是哪一个?问题一解法:双指针遍历这题有两种解法, 其中一种便是双指针法,还有一种比较巧妙,利用了数学方法,简单来说是求 阅读全文
摘要:
代码如下:(类似于编程之美的2.17,数组循环移位) static void Main(string[] args) { string input = "Hello World Welcome"; char[] tempArray = input.ToCharArray(); string result = RightShift(tempArray, 0, tempArray.Length-1); } public static string Rig... 阅读全文
摘要:
public static int CalculateStringDistance(string strA, int pABegin, int pAEnd, string strB, int pBBegin, int pBEnd) { if (pABegin > pAEnd) { if (pBBegin > pBEnd) { return 0; } else ... 阅读全文
摘要:
方法一:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication3{ class Program { static void Main(string[] args) { List seqlist = new List { 42, 20,17, 27,13,8,17,48}; HeadOrder... 阅读全文
摘要:
http://www.cnblogs.com/fo0ol/p/3297054.html做Web开发,难免要对自己开发的页面进行性能检测,自己写工具检测,工作量太大。网上有几款比较成熟的检测工具,以下就介绍一下,与大家分享。互联网现有工具基于网页分析工具:1.阿里测2. 百度应用性能检测中心2.Web PageTest3.PingDom Tools4.GTmetrix基于浏览器分析工具:1.Chrome自带工具F122.Firefox插件:YSlow(Yahoo工具)3.Page Speed(google)(以下以分析博客园网站为例www.cnblogs.com)阿里测:http://www.. 阅读全文
摘要:
101+ Manual and Automation Software Testing Interview Questions and Answershttp://www.softwaretestinghelp.com/software-testing-interview-questions/ 阅读全文