Menu Sidebar
Menu

December 2015

Happy Number

  public boolean isHappy(int n) { // Write your code here if(n <= 0) return false; long nn = (long)n; Set<Long> set = new HashSet<Long>(); while(true) { if(nn == 1) return true; if(set.contains(nn)) return false; else set.add(nn); long tmp = 0; while(nn != 0){ tmp+= (nn % 10)*(nn % 10); nn/=10; } nn = tmp; […]

Maximum Minimum Path in Matrix

给一个矩阵, 先找所有从左上到右下的path. 找出每个path的最小值. 找出这些最小值中的最大值. 这题看着挺乱的, 给个例子就清楚了. {8,4,3,5} {6,5,9,8} 这个返回5 所有的path: 8->4->3->5->8 min:3 8->4->3->9->8 min:3 8->4->5->9->8 min:5 8->6->5->9->8 min:5 Result = Math.max(3,3,5,5,) = 5 Code: public static int maximumMinimumPath(int[][] matrix) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) { return 0; } int n = matrix.length; int m = matrix[0].length; int[][] […]

Binary Tree Paths

打印所有的从root到leaf的path. 开始用的queue做的..后来看了下别的人的答案, 感觉都很简练.po一个别人的答案   public List<String> binaryTreePaths(TreeNode root) { List<String> res = new ArrayList<String>(); if(root == null) return res; if(root.left == null && root.right == null) res.add(root.val + “”); else{ if(root.left != null) res.addAll(binaryTreePaths(root.left)); if(root.right != null) res.addAll(binaryTreePaths(root.right)); for(int i = 0 ; i < res.size(); i++) res.set(i,root.val + “->” + res.get(i)); } return res; […]

Mapbox面试

碉堡了的公司. 不问算法, 不问设计, 申请就面, 一轮电话+两轮video..拿着你github, 看你code style, 问你问题….onsite更是吊吊吊…上来给个他们项目的pull request, 让你解决, 你有一上午的时间看文档…我都不知道怎么写面经了…

微软面试

我和朋友一起去的, 到了以后发现同校去的一共4人, 后来听说全挂了, 这里不得不说 微软各种土豪: 我住在中部小城市, 没有直达西雅图的飞机, onsite前一天, 我到机场, 被告知飞机因为大雪(初雪)延误, 被改签的飞机到达西雅图是第二天上午10点, 我默默的告诉前台, 哥是去面试的, 面试7点开始, 我10点去是去吃下午茶么? AA的前台特别友好的告诉我, 我们就是么飞机, 你咬我啊….然后我立刻想怎么咬她, 灵机一动给微软的Amex Travel打电话, Amex mm告诉我, 你可以直接咬她,  跟她说邻桌delta有空位, 人家有飞机能飞. 于是我转身要她, 发现并撕不过, AA mm一口咬定: 因为天气原因不能overload邻家飞机. 我立刻明白了为什么狗咬你, 你不能咬狗了…撕逼不成, 只能又打微软Amex Travel电话, 这次是manager接的,说, 你不用撕逼了, 你可以直接撕票了…于是土豪的微软立刻出了一张商务舱的delta票给我, 我就拿着AA的票去mm面前撕票…当土豪就是爽…. delta的飞机到了西雅图已经夜里11点了, 下飞机被租车公司告知: 给你的车没有了, 你可以选择更豪的车, 我想想土豪微软飞机票都出的起, 车嘛..”没问题”, 我想都没想…..同样..到了宾馆, .我也住在楼顶套房….就这样, 一趟奢侈的微软之旅开始了… 我的面试是: 四个烙印+一个白人大叔…妥妥的挂了.哦对了, 我面的是云组..听说没什么中国人 中年烙印, 一路微笑, 结果找不到面试房间, 上来聊简历, 然后开始做题, Search […]

Verify Preorder Array for Binary Search Tree

给一个int的array, 问你这个array是不是一个bst的preorder. 用stack做preorder遍历” 如果当前元素大于stack里的元素, 证明我们在遍历一个node的右节点, 这时,因为是preorder, 说明左节点已经遍历过了, 所以我们要把stack中所有小于当前元素的节点pop出来,并且用low记录最后的一个. 如果当前元素比low小, 证明循序有错误, 因为low是左子树中最小的元素. 然后每次把当前node放入stack, 最后stack中有元素也不影响判断是不是preorder public boolean verifyPreorder(int[] preorder) { int low = Integer.MIN_VALUE; Stack<Integer> st = new Stack<>(); for(int p : preorder){ if (p < low) return false; while (!st.empty()&& st.peek() < p) low = st.pop(); st.push(p); } return true; }  

书脊

这青苔碧瓦堆, 俺曾睡风流觉, 将五十年兴亡看饱.

December 2015
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
28293031