摘要: 62.找出链表的第一个公共结点。题目:两个单向链表,找出它们的第一个公共结点思路:1.暴力法 但时间复杂度太高 o(n*m)2.如果两个链表有公共节点,则从该公共节点起,后面的节点均为公共的,即这两个链表在第一个公共节点交叉,然后形成一个Y字型,因为两个链表长度不一定一样,所以可以先求得他们的长度n... 阅读全文
posted @ 2015-12-04 17:12 蟹粉小笼包 阅读(2124) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值以前做过相似的,可以用递归解决,也可以用非递归解决 1 package com.rui.microsoft; 2 3 import java.util.Stack; 4 5 public class Test_LinkedLis... 阅读全文
posted @ 2015-12-04 14:31 蟹粉小笼包 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 求一个一维数组中的最长递增子序列的长度比如,在序列{1, -1, 2, -3, 4, -5, 6, -7}中,其最长的递增子序列为1,2,4,6思路: 编程之美上的题,也是蛮经典的动态规划题。 思路还是去找规律,我们拿LCS来表示最长递增子序列的长度第一个数1, 则LCS(1)=1, 因为就一个数嘛... 阅读全文
posted @ 2015-12-02 16:16 蟹粉小笼包 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 基础才是最重要的, 好久不写排序了,今天写了一下还是各种报错。。。。要养成习惯,每天至少做一道算法题 1 //复习各种排序 2 public class SortApp { 3 4 public static void main(String[] args) { 5 int... 阅读全文
posted @ 2015-11-20 16:44 蟹粉小笼包 阅读(188) 评论(0) 推荐(0) 编辑
摘要: Problem: given a tree, color nodes black as many as possible without coloring two adjacent nodes思路: 如果根节点r被标记为黑色,则其直接子节点不能被标记为黑色,如果不标记r,则其子节点可以标记为黑色,得... 阅读全文
posted @ 2015-11-19 16:09 蟹粉小笼包 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 无向连通图的割点又被成为关节点(articulation point), 移除关节点,则原连通图变成两个连通分量, 一个没有关节点的连通图被成为重连通图 (biconnected graph)要寻找无向连通图中所有的关节点,比较便捷的方法是利用一次深度优先遍历,找到所有关节点对于节点u,及其子节点v... 阅读全文
posted @ 2015-11-11 16:48 蟹粉小笼包 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 35.求一个矩阵中最大的二维矩阵(元素和最大).如:1 2 0 3 42 3 4 5 11 1 5 3 0中最大的是:4 55 3思路: 可以用一个2X2的二维矩阵从第一行开始依次遍历直到找到和是最大的那个子矩阵,但暴力破解一般都不是最优答案。 我的想法是如果用2X2矩阵逐行遍历的话,其实每次计算2... 阅读全文
posted @ 2015-11-05 15:25 蟹粉小笼包 阅读(715) 评论(0) 推荐(0) 编辑
摘要: 30.在从1到n的整数中1出现的次数题目:输入一个整数n,求从1到n 这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11 和12,1 一共出现了5 次。分析:这是一道广为流传的google 面试题思路:第一反应是遍历这N个数,然后对每个正数n不断用1... 阅读全文
posted @ 2015-10-28 14:18 蟹粉小笼包 阅读(505) 评论(2) 推荐(0) 编辑
摘要: 任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4思路:最直观的方法是对n和0001做&运算,如果结果为1,则counter加一,否则不变,然后将n右移一位,直到n=0为止. 方法count1和count2都是这种思路... 阅读全文
posted @ 2015-10-26 16:00 蟹粉小笼包 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 27.跳台阶问题题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。求总共有多少总跳法,并分析算法的时间复杂度思路:通过数学归纳法n=1 1n=2 2n=3 3n=4 5n=5 8可知n>=3时 f(n)=f(n-1)+f(n-2) 是一个斐波那契数列, 该问题的时间复杂度也就是求斐波... 阅读全文
posted @ 2015-10-26 15:02 蟹粉小笼包 阅读(179) 评论(0) 推荐(0) 编辑