求两个sorted数组的intersection e.g. [1,2,3,4,5],[2,4,6] 结果是[2,4] difference 类似merge, 分小于等于大于三种情况,然后时间O(m+n), 空间O(1) package ShortestSubsequenceIncluding; import java.util.*; public class Solution2 { public ArrayList<Integer> setInters(int[] arr1, int[] ar…
python的集合set和其他语言类似,是一个无序不重复元素集, 可用于消除重复元素. 支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. 不支持 indexing, slicing, 或其它类序列(sequence-like)的操作.因为,sets作为一个无序的集合,sets不记录元素位置或者插入点. 下面就并集,交集,差集简单举例. 并集 >>> a=[1,3,5] >>…
交集.并集.差集-intersection(&)-union(|)-difference(-) 1-intersection(&) s1.intersection(s2),返回s1和s2中相同部分,等价的运算符为 &. 2-union(|) s1.union(s2)  :返回一个新集合,新集合包含s1,s2的所有元素,等价的运算符为 | . 3-difference(-) s1.difference(s2):返回的集合为s1中去除含有的s2中的元素,等价的运算符为 -. 4-sym…
给你A{1,2,3,4,4,5}, B{2,4},求A-B={1,3,4,5},很简单. visit 1 只用一个HashMap package TwoSets; import java.util.*; public class Solution { public ArrayList<Integer> findDiff(int[] arr1, int[] arr2) { ArrayList<Integer> res = new ArrayList<Integer>();…
字符串重新排列,让里面不能有相同字母在一起.比如aaabbb非法的,要让它变成ababab.给一种即可 Greedy: 跟FB面经Prepare task Schedule II很像,记录每个char出现次数,然后用最大堆,把剩下char里面出现次数多的优先Poll出来组建新的string 如果poll出来的char跟上一个相同,则用一个queue暂时存一下 我觉得时间复杂度:O(N) + O(KlogK) + O(NlogK) = O(NlogK) ,where K is the number…
求string str1中含有string str2 order的 subsequence 的最小长度 DP做法:dp[i][j]定义为pattern对应到i位置,string对应到j位置时,shortest substring的长度,Int_Max表示不存在 package ShortestSubsequenceIncluding; public class Solution { public String findShortest(String a, String b){ if(a==nul…
设定一个pattern 把 'internationalization' 变成 'i18n', 比如word是house,pattern可以是h3e, 3se, 5, 1o1s1等, 给pattern和word,判断是否match, package DataStreamAverage; public class Solution3 { public boolean check(String s1, String s2) { return helper(s1, 0, s2, 0); } publi…
给一个datastream和一个fixed window size, 让我design一个class可以完成add number还有find average in the window. 就是不能用vector得用array. 当然用queue是最好的 package DataStreamAverage; import java.util.*; public class Solution { int count; int sum; Queue<Integer> q; public Soluti…
1 2 3 4 5 6 7 8 9 只有中间没有其他键的两个键才能相连,比如1可以连 2 4 5 6 8 但不能连 3 7 9 但是如果中间键被使用了,那就可以连,比如5已经被使用了,那1就可以连9 每个键只能用一次,给定一个长度L,求问有多少unique path with length L Backtracking: 我的code不光可以知道数目,还可以打印所有Pattern package AndroidUnlockPattern; import java.util.*; public c…
第二题 算法 给你一个arr 返回 T 或者 F arr的每个数代表从这个点开始跳几部,返回T的情况:从这个arr中任意一个数开始跳,可以在每个元素都跳到且只跳到一次的情况下返回到开始跳的元素 比如[1,1,1,1,1,1] => T [0,1,1,1,1,1]=> F [7, 5, 2, 3] => F [2,2,3,1] => T. From 1poi scan array once, get the index that can be reached by each arra…