摘要:
一个系列三道题,我都不会做,google之答案。过了两道,第三道看不懂,放置,稍后继续。一、Best Time to Buy and Sell Stock I题目:一个数组表示一支股票的价格变换。要求只买卖一次,获得最大收益。思路:一开始我认为是寻找最大、最小值,但由于最大值不一定总是出现在最小值的... 阅读全文
2014年5月26日
摘要:
题目:判断一个数字字符串是否是回文串。空串认为是回文串。思路:双指针问题,重点在于此题的很多陷进:例如,s = " " ,return true。 s = ".," , return true。代码:修改了很多遍,终于AC , 要点在于只有当头尾两个指针都指向数字或者字母时,此时才有比较操作,否则都... 阅读全文
2014年5月25日
摘要:
题目:Pascal三角的变形,要求只用O(K)的额外空间。思路:由于Pascal三角中,tri[n][i] = tri[n - 1][i] + tri[n-1][i-1],(通常情况下)如果已经获得K = 2时的数组:1211、 普通思路,从前部开始,想要生成下一行,在不能申请其它辅助空间时,131... 阅读全文
摘要:
题目:题目本身不存在问题,生成Pascal三角。注意: ArrayList的使用: 1、ArrayList申请二维数组。1 ArrayList> result = new ArrayList>(); 2、操作:1 ArrayList one = new ArrayList();2 ... 阅读全文
摘要:
题目:合并两个有序数组A , B,将合并后的数组存到A中。假设A的空间足够装下A和B所有的元素。思路:这道题考虑如果正向扫描两个数组,则每插入一个元素,则需移动A后的所有元素。换个角度想,既然元素个数一定,则从尾部扫描两个数组,依次放入到A的尾部,这样既不会产生大量元素的移动,也不会造成A中元素被覆... 阅读全文
摘要:
题目:一个有序数组,要求保证数组中的每个元素不能超过2个。 输入:A =[1,1,1,2,2,3] 输出:length =5, and A is now[1,1,2,2,3]思路:双指针 。有些绕,不过理清了后,思路还是很直接明朗的。1、两个指针:p和help。初始化时同时指向数组头。变量cur... 阅读全文
2014年5月23日
摘要:
我敢保证这道题是在今早蹲厕所的时候突然冒出的解法。第一次接触DP题,我好伟大啊啊啊~题目:一个N阶的梯子,一次能够走1步或者2步,问有多少种走法。解法:原始DP问题。思路:1、if N == 1 , then ans = 1;2、if N == 2 , then ans = 2;3、if 我们现在在... 阅读全文
2014年5月22日
摘要:
题目:有一个m * n 的方格,如下图,一个小robot希望从左上角走到右下角,共有多少种不同的路线走法。思路:我的错误思路:全排列,从(0,0)走到(m - 1,n - 1)共需要往下走m-1步,往右走n-1步。那么计算公式就是(全排列(m-1+n-1)/(全排列(m-1)*全排列(n-1)))。... 阅读全文
摘要:
题目:一开始没看懂,后头经过WA发现 输出 的意义 是 出现的次数+值。1 => 一个1 => 1111 => 两个1 => 21111=> 三个1 => 31。。。依次类推思路:用两个变量current和next,存储相邻元素的值,如果相同,往下移一位,此时计数器count++ , 直到curre... 阅读全文
2014年5月21日
摘要:
中间被启程日本的面试弄的没有静下心来复习算法。这样不好,基本功是硬道理。逐步恢复刷题。题目:给一个数独(九宫格)中的一些数字,判断该数独是否有效。 即按照数独的规则,判断其行、列、小九格中是否有重复的数字。如有,即判断无效。直接给代码吧,长期没刷题,代码质量有所下降。 1 public bo... 阅读全文