FB实习第一面准备:leetcode 第一遍代码
文章平均质量分 79
SpartanLaser
这个作者很懒,什么都没留下…
展开
-
1st round, 325 maxSubArrayLen
maxSubArrayLen原创 2017-02-09 03:57:37 · 1252 阅读 · 0 评论 -
1st round, 200 number of isalnds
这道题是加深我对 dfs 的理解。。。对方向这个词的理解不再是停滞在树的各个分叉上,而是在二维空间的变化上。。。那么既然是二维空间,那就要有xy两个参数,base case的返回条件也就要相应确定。。。基本思路:从左上顶点出发,扫一遍matrix,遇到1则停下来,island++,加一之后,要把这个点相连的所有土地归零,才可以在以后的技术中不重复计算!!代码如下:public clas原创 2017-02-10 11:21:36 · 222 阅读 · 0 评论 -
1st round, 161 One Edit Distance
快速粘贴,抓紧时间。。。public class Solution { public boolean isOneEditDistance(String s, String t) { // solution 2 思路: 首先要求对题意理解准确。。。那就是只有一个差字母的相差,相等的也不行,所以首先来找到这个差异。。。只能遍历 // 差异的话,有两种情况,1,长度相原创 2017-02-10 12:30:39 · 280 阅读 · 0 评论 -
1st round, 157 Read N Characters Given Read4
这道题虽说归为简单级别,但是通过率很低,主要原因就是题意很不好理解。。。给出的API输入是什么,具体什么意思,要花好些时间都不一定理解。。。我反正是看了参考答案才知道这API是干嘛呢。。才了解题意,就是说,题目给出了一个buff[] 和 int n 用来存放从某个文件file里取的n个字符,但是!!有可能file中没有n个字符,那么这个时候,就到把文件读完就okay了。。。/* T原创 2017-02-10 12:41:43 · 193 阅读 · 0 评论 -
1st round, 257 Binary Tree Paths
看着挺容易的,然而我对这题并没有什么印象。。。从root到leaf,那显然就是dfs了。。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int原创 2017-02-10 13:11:50 · 172 阅读 · 0 评论 -
1st round, 285 Inorder Successor in BST
一道看上去简单,但无从下手的题目。。。不是那种典型的根据叶子节点递归的题,而是要返回某个节点的题!!!卧槽,我发现套路了,就是和那到找最低共同祖先节点的题一个道路啊!!也是返回节点,那么我们就要生成一个节点,方式就是通过这个方法本身,然后通过判断是节点是否是null,来进行判断NB!另外一道题的链接:https://leetcode.com/problems/lowest-common-anc原创 2017-02-10 13:46:19 · 177 阅读 · 0 评论 -
1st round, 236 Lowest Common Ancestor of a Binary Tree
这道题就是我上一篇中提到的返回 节点的题!!有必要写在一起,进行逻辑 和 代码结构上的对比!/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(in原创 2017-02-10 14:17:35 · 204 阅读 · 0 评论 -
1st round, 494 Target Sum
dfs, 两个分支。。。加和是核心单元。。。public class Solution { public int findTargetSumWays(int[] nums, int S) { //int count=0; return dfs(nums, S, 0, 0); //return count; }原创 2017-02-11 00:45:43 · 172 阅读 · 0 评论 -
1st round, 78 Subsets
一道backtracking的启蒙作用的题,我还画了过程图在ppt,非常经典。。。public class Solution { public List> subsets(int[] nums) { List> result = new ArrayList>(); //if(nums==null || nums.length==0) ret原创 2017-02-11 00:57:56 · 234 阅读 · 0 评论 -
1st group anagram 49
典型的用HashMap来存单次。。。单词的解析码是所有字母排序相同的值。import java.util.List;import java.util.ArrayList;import java.util.Map;import java.util.HashMap;import java.util.Arrays;// import container 时,要import 接口和对原创 2017-02-11 01:14:49 · 189 阅读 · 0 评论 -
1st round, 277 Find the Celebrity
挺好玩的一道题。。。很有现实场景的感觉。。。名人就是我不是认识你们观众,但是观众都认识我。。。public class Solution extends Relation { public int findCelebrity(int n) { int candidate=0; for(int i=1; i<n; i++){原创 2017-02-10 10:47:36 · 169 阅读 · 0 评论 -
1st round, 1 2Sum
刚刚写3sum不是很顺,关于越过重复数字的处理,没有设置好,最后还是通过先 ++/--,再做while(有效范围 && 重复情况) 来实现。。。所以进而想到额2sum,于是看了下从前的代码和实现,之前的是两个遍历,复杂度是N平方,最naive的做法。。。我想了个sort的方法,结果出错了,一看原来是题目要求返回index,那就显然不能sort,sort打乱了原有index和elem的对原创 2017-02-10 10:17:04 · 258 阅读 · 0 评论 -
1st round, 283 moveZeroes
leetcode moveZeroes原创 2017-02-09 03:33:29 · 185 阅读 · 0 评论 -
1st round, 311 Sparse Matrix Multiplication
public class Solution { public int[][] multiply(int[][] A, int[][] B) { int m = A.length; int n = A[0].length; int p = B[0].length; int[][] result = new int[m][p];原创 2017-02-09 07:19:51 · 369 阅读 · 0 评论 -
1st round, 314 binaryTreeVerticalTraversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {原创 2017-02-09 04:32:15 · 313 阅读 · 0 评论 -
1st round, 67 Add Binary
public class Solution { public String addBinary(String a, String b) { int lenA=a.length(); int lenB=b.length(); if(lenA==0) return b; if(lenB==0) return a;原创 2017-02-09 08:11:27 · 307 阅读 · 0 评论 -
1st round: 278 First Bad Version
一道让我印象深刻的题因为让我知道了在binary search中,index的设置:包括初始化,更新条件,的本质意义是什么,对于解题和把握细节的重要作用!应该可以5min写完public class Solution extends VersionControl { public int firstBadVersion(int n) {/* long c原创 2017-02-09 10:04:01 · 324 阅读 · 0 评论 -
1st round, 17 Letter Combinations of a Phone Number
这道题,是给我启蒙dfs算法的一道题,印象很深刻!本质上就是一棵多叉树的path 遍历,是对二叉树的扩展。二叉树是普通多叉树的特例,可以用left,right指针来标记左右子节点,但是多叉树这样的话就没办法,也没必要用多个指针。。。说到这,我突然想到了一道题目,可以用2分法,然后我又想到了3分法 [waiting for link] ,但是和这里一样,二叉和二分就是比较有代表性的,有更多的34原创 2017-02-09 11:16:22 · 258 阅读 · 0 评论 -
1st round, 253 Meeting Rooms II
这道题是对我启蒙:设计针对自定义类的比较器Comparator,重载Comparator类中compare()方法的一道题,当时连续做了3道类似的interval的题,所以印象还比较深刻。。。有merge interval, count how many rooms need, and whether one room is enough。。这三道题本身都不难,只要将Interval这个类的设计好原创 2017-02-09 14:37:32 · 230 阅读 · 0 评论 -
1st round, 91 Decode Ways
一道启蒙我 认识动态规划方法,利用少数几个参数存储前序信息达到节约空间的一道题。。也是FB面试中出现频率非常高,很有代表性的一道题:public class Solution { public int numDecodings(String s) { if(s==null || s.equals("") || s.charAt(0)=='0') return 0原创 2017-02-10 03:59:43 · 227 阅读 · 0 评论 -
1st round, 15 3Sum
2sum, 3sum 是典型的考查排序后数组的特性的一道题,一旦将数组排序,加和的话就通过 夹逼法 实现就可以。。。如果数组内有重复数据出现,那么要考虑,是否可以过滤掉一些重复元素,在夹逼过程中,可以滑过一整段相同的数字,而不是每跳到一个数字就计算考察一下。。public class Solution { public List> threeSum(int[] nums)原创 2017-02-10 07:21:55 · 229 阅读 · 0 评论 -
挫折是必然的,未来仍光明
前天晚上收到FB的据信,心有不甘,难免郁闷。。。昨天一整天都情绪低落,有如任何一次失意,比如身体不舒服,焦急等待结果,失恋,被沮丧的情绪包裹住大脑和身体,干不了别的事情。。于是我看奇葩说,分散注意力,直到看到不想看。。在网上搜 被FB拒了后怎么克服失落心态,结果还发现了Brain Acton这样的例子,晚上还是不安,又翻看Steve Job在Stanford的演讲和其他场合的演讲。。任然让原创 2017-02-22 00:39:26 · 276 阅读 · 0 评论