自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

转载 JUnit 单元测试的好文

https://www.cnblogs.com/ysocean/p/6889906.html 转载于:https://www.cnblogs.com/keepAC/p/10363785.html

2019-02-12 05:43:00 104

转载 谈一谈 Gradle 的仓库(Repositories)-转

转自:https://my.oschina.net/pingjiangyetan/blog/423380 首先,Repository 是什么?Repository 是 文件的集合,这些文件,通过group、name和version 组织起来。在使用上,主要体现为jar 和 xml文件 Gradle 通过这些Repository 找到外部依赖(external depende...

2019-02-12 02:16:00 249

转载 各种容器的初始化以及相互初始化

1D-->1D List: new ArrayList<>(1D_list) 1D List添加 2D List List<List<Integer>> result; result.add(new ArrayList<>(curResult)) set to list; new Arra...

2019-02-09 08:11:00 177

转载 复习backtracking 并总结

每一个分支把leetcode backtracking 几十个题目重新复习一遍,领略back tracking 精髓。 一 排列问题: 46/47 Permutations : 46 没有重复数字 47 包含重复数字 46: 关键是采用used[i] 来标记一个i 是否已经被选择了, 注意used 状态改变只对子节点状态有效,对 同一层的节点状态是无效的,这也是back t...

2019-02-09 02:56:00 226

转载 学习双向BFS, 在开锁那个题目里很有用

这里有对双向BFS 很好的解释: https://www.geeksforgeeks.org/bidirectional-search/ 双向BFS 最好的应用是 752.Open the Lock 转载于:https://www.cnblogs.com/keepAC/p/10357088.html...

2019-02-09 02:51:00 118

转载 String split 注意事项

在做588.Design In-Memory File System时遇到 split 函数的坑。 1. String[] strs= ”/a/b/c“.split("/") 得到的是 strs= ["","a","b","c"] 四个字符串,所以应该忽略第一个空字符串 2. String[] strs= ”/“.split("/") 得到的是 strs.le...

2019-02-09 02:44:00 89

转载 146. LRU Cache/460. LFU Cache/588. Design In-Memory File System

这三道题真是经典,值得仔细回味。 转载于:https://www.cnblogs.com/keepAC/p/10357079.html

2019-02-09 02:34:00 97

转载 703. Kth Largest Element in a Stream/215. Kth Largest Element in an Array/

703 非常经典的一个题,假设有一个不断增加的序列,要求输出第K 大的数 int k = 3; int[] arr = [4,5,8,2]; KthLargest kthLargest = new KthLargest(3, arr); kthLargest.add(3); // returns 4 kthLargest.add(5); // returns 5 kt...

2019-01-15 04:32:00 78

转载 347. Top K Frequent Elements/692. Top K Frequent Words

Given a non-empty array of integers, return thekmost frequent elements. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2] Example 2: Input: nums = [1], k = 1 Output: [1]非常经典...

2019-01-15 03:54:00 79

转载 414. Third Maximum Number

return thethirdmaximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n). Input: [2, 2, 3, 1] Output: 1 Explanation: Note that th...

2019-01-15 03:13:00 82

转载 280. Wiggle Sort/324. Wiggle Sort II

280 Given an unsorted arraynums, reorder itin-placesuch thatnums[0] <= nums[1] >= nums[2] <= nums[3].... Example: Input: nums = [3,5,2,1,6,4] Output: One possible answer is [3,5,1...

2019-01-15 03:07:00 78

转载 36. Valid Sudoku/37. Sudoku Solver - 数独问题-- backtracking 经典

题意: 经典的递归题, 要求:除了要求 横竖都填满 1~9外, 每个3*3也都要求满足 1~9 36. 数组可以部分填充, 问是否一个有效的 sudoku. 写了个好烧脑的 四重循环来check 3*3 的部分。 重点在于 用数组作为hash 。 然后对于 check 3*3 部分, 其实就是9个小方块, 9个小方块 定点坐标为 [0 0] [0 3] [06] [3 ...

2018-11-25 05:27:00 141

转载 351. Android Unlock Patterns -- back tracking 坑多

android 解锁,规则比较复杂,其中比较复杂的是 1) 从1 到3, 如果要穿越2, 那么2必须已经走过了 | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 |2) 这样一个九宫格, 定义里竟然1 可以直接到8 的, 不在“穿越” 的定义里!直接看穿越的定义: 把穿越的关系 定义在一个 二维数组中, 这是这题比较巧妙地地方, 比如 1 --&g...

2018-11-22 16:00:00 109

转载 39. Combination Sum vs 377. Combination Sum IV --- 为何377 可以被 memoization,而39不可以

这两题 都是给定 Nums =[1 2 3] target = 4, 用nums 求和构建 target , 求出可能结果 不同点: 39 题: 认为 [1,1,2] 和 [2,1,1] 是重复结果 377 认为 [1,1,2] 和 [2,1,1] 是不同的结果。 因此画出两个题目的dfs tree: 39 题的 tree 里可以看出, 当放了[1,1 ]后 s...

2018-11-22 04:40:00 82

转载 Trie Tree的构建 -- find/search/searchAll/search Prefix

比如网上一个例子 一组单词,inn, int, at, age, adv, ant, 我们可以得到下面的Trie: 这里的节点上存的是一个单词,实际上,每个节点走过的路径就是该节点代表的单词. 下面这个链接 对Trie tree 比较好的code 模板,针对leetcode 的: https://www.programcreek.com/2014/05/leetcode-i...

2018-11-21 14:10:00 101

转载 425. Word Squares -- back tracking + trie tree(TLE if not)

给你一个字符数组,每个单词长度一样,你从中选单词,组成的 二位数组中 横向和纵向 组成的一维数组都一样。 注意1: 单词可以重复被选择 注意2. 字符串数组可能非常的大,有1000 个 Input: ["area","lead","wall","lady","ball"] Output: [ [ "wall", "area", "lead", ...

2018-11-21 05:12:00 139

转载 416. Partition Equal Subset Sum/698. Partition to K Equal Sum Subsets - recursion 待续

待续 转载于:https://www.cnblogs.com/keepAC/p/9992888.html

2018-11-21 04:33:00 63

转载 383. Ransom Note/691. Stickers to Spell Word-- String, Map, back tracking-- 未完待续

383 easy 题,就是建立字母的hash 表 看第一个String 是否能被第二个String 所构建 canConstruct("aa", "aab") -> true 统计 第二个参数中每个字母的频率,可以用一个int[256] 建立hashmap, 然后统计 第一个String 中字母出现的频率是否被 hashmap 所包含。 class Solution...

2018-11-19 14:12:00 85

转载 290/291 Word Pattern I and II -- 290: map 291 map+backtracking

290 为一个简单题,但还是有个小坑的。 题意: 给你一个pattern 和 一个用空格split 的的str, 问你两边是否匹配。 Input: pattern = "abba", str = "dog cat cat dog" Output: true code 很简单,一看就是用Map, 去建立 char : string 之间的对应关系, 然而还得用一个 set 去...

2018-11-18 05:42:00 106

转载 51/52. N-Queens -- 待优化

经典的八皇后问题, queen 可以攻击的范围: 水平,垂直,斜向, 放置 queen 让所有的queens 不在对方的攻击范围内,问有多少种方法或者产生相应的棋盘。 分析: 依次产生每一行的结果, 先在某行某个位置放一个结果,如果不能产生解 则back tracking 到上一行,重新放置。 以 n=4 为例,每个位置都得分解 n=4 份, 算法复杂度为 n^n ,是一个...

2018-11-17 14:18:00 87

转载 211 Add and Search Word - Data structure design--- back tracking, map, set 待续 trie

题意: 设计个字典查询系统, 有 add 和search 两种操作, add 是加入单词到字典里, search 时 可以用 点号通配符 ".", 点号可以匹配一个字母。 分析: 当search 时为 通配符时, 如果直接用back tracking产生 a-z, 比如 有7个点号, 就得生成 26^7 个组合,会TLE。 以下是TLE的code: class WordD...

2018-11-17 06:57:00 77

转载 79. Word Search/212. Word Search II--图的back tracking -- tier tree 待续

79题, 给你一个二维的board, 只能往上下左右四个方向走,为你是否能找到单词。 board = [ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E'] ] Given word = "ABCCED", return true. Given word = "SEE", return true...

2018-11-17 04:30:00 113

转载 357. Count Numbers with Unique Digits-- back tacking 或者数学问题

Given anon-negativeinteger n, count all numbers with unique digits, x, where 0 ≤ x < 10^n. Example: Input: 2 Output: 91 Explanation: The answer should be the total numbers in the rang...

2018-11-16 13:03:00 69

转载 667. Beautiful Arrangement II-- 类比526 但不能用back tracking

667 是很坑爹的一个题目,乍一看和 526 如出一辙, 526.Beautiful Arrangement 题意: 构造 [1,n]的排列,让每个 a[index] % index ==0 或者 index %a[index] ==0, 基本和 46 题一样,就是构造排列。 667题意: 给定两个整数n和k,构建一个n个元素数组,数组要满足一下要求:假设数组[a1,a2....

2018-11-16 12:31:00 62

转载 526. Beautiful Arrangement-- 和46. Permutations 一样 -back tracking

给一个数N, 产生 一个数列的排列 [1,2,..n] 这个数列符合如下条件 : 第index 个数满足两个条件的一个 :1. index % a[index] ==0 或者 2. a[index]%index ==0 分析: 和 46 permutations 完全一样, 只是需要在dfs 过程中 加上 判断条件, 并且返回符合结果的个数而不是 排列即可。 code 改了几...

2018-11-16 06:11:00 62

转载 306. Additive Number/842. Split Array into Fibonacci Sequence -- back tracking

306.Additive NumberInput: "112358" Output: true Explanation: The digits can form an additive sequence: 1, 1, 2, 3, 5, 8. 1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5, 3 + 5 = 8题意:把一个字符串拆分,a...

2018-11-16 05:38:00 55

转载 293/294 Flip Game I and II -- back tracking ing

293. 一个input 只有 + 或者-, 每次只能把 “连续2个”+ 变成- 号,下一轮换另一个人做同样操作,如果不存在连续的+,则这个人就失败了。Input: s = "++++" Output: [ "--++", "+--+", "++--" ]给你一个初始化的字符串,问你下一次可能的结果。算法: 简单的字符串处理,只要找到连续两个+ 就变成- 然后存...

2018-11-16 04:27:00 78

转载 267. Palindrome Permutation II --back tracking 以及palindrome 的优化方法ing

产生input中 所有permutation 中符合 palindrome 的。Input: "aabb" Output: ["abba", "baab"]分析: 和47.Permutations II 本质上一样的,首先字母有重复的,因此为了避免重复解,得先排序。47题example Input: [1,1,2] Output: [ [1,1,2], [1,2...

2018-11-15 03:24:00 91

转载 131. Palindrome Partitioning--back tracking 和93. Restore IP Addresses本质一样

给你一个字符串, 输出他的pattitioning 都是 palindrome 的组合 Input:"aab" Output: [ ["aa","b"], ["a","a","b"] ] 和93 题实际上一样, 给你个字符串长度比较是 3, 你相当于有一个nums = {1,2,3} 的数组,每次去取 一个数求和,当和的长度恰好等于 字符串长度 并且都...

2018-11-15 03:11:00 80

转载 31. Next Permutation-- 数组处理题

竟然被这么一道简单题折腾了好久,WA了很多次。 算法: 从后往前找,找到a[i-1] 时,从i 到len 中 最小的 但大于 a[i-1]的数,并且交换。 交换后把i 到 len 进行排序。 code 如下: 一开始下标没处理好,21行少了个break, 只得让24行变成 i+2 ,但这样又涵盖不了整个数组是递减排列的情况。 Arrays.sort(nums,i+2,nums...

2018-11-14 07:41:00 69

转载 compareTo() and Sort

compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较String, Byte, Long, Integer等,比较String 时比较有用。 Integer x = 5; System.out.println(x.compareTo(3)); :1 System.out.println(x.compareTo(5)); :0 Sys...

2018-11-14 04:36:00 191

转载 527. Word Abbreviation -- 贪心法,排序, Tier Tree -ing

input: ["like","god","internal","me","internet","interval","incension","intension","face","intrusion"] output: ["l2e","god","internal","me","i6t","interval","inc5n","inte4n","f2e","intr4n"] ...

2018-11-13 13:55:00 178

转载 411. Minimum Unique Word Abbreviation--320+408 back tracking

这道题就是320和408两个题目合在一起: https://leetcode.com/problems/valid-word-abbreviation/description/ https://leetcode.com/problems/generalized-abbreviation/description/ 唯一需要注意的是,需要返回最短的长度,而最短的长度中数字...

2018-11-12 15:39:00 136

转载 408. Valid Word Abbreviation --字符串处理

Given s = "internationalization", abbr = "i12iz4n": Return true.abbr 里数字代表相应的字符数,问字符串是否相等虽然是一个easy 的题但却有两个坑:1. abbr 结尾的地方是数字 例如: s= "internationalization" abbr= "i5a11o1" , 因此 return时得加上co...

2018-11-12 13:28:00 173

转载 320. Generalized Abbreviation-- back tracking and bit manipulation(待续)

把一个字符串中字母用数字代替,产生所有的组合数Input: "word" Output: ["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", "1o2", "2r1", "3d", "w3", "4"]和78 subsets本质上也是一样的: https://lee...

2018-11-12 08:56:00 88

转载 89. Gray Code --迭代 和 back tracking 两种方法

产生格雷码,格雷码就是前后 两个数在二进制上只有一个bit 的差别 先看看格雷码的规律: n =0, [0] n=1, [0 1] n=2: 00 01 11 10 n=3: 000 001 011 010 -...

2018-11-12 06:04:00 110

转载 93. Restore IP Addresses--back tracking -- 类比39 Combination Sum

93 给你 一串数字,让你求出可能的IP 地址。 Input: "25525511135" Output: ["255.255.11.135", "255.255.111.35"]仔细分析一下这题和39题 几乎完全一样呀,39是给你 一个没有重复数组,可以重复使用数组里的数字之和来组成 target. Input: candidates = [2,3,6,7], target =...

2018-11-12 04:39:00 48

转载 17. Letter Combinations of a Phone Number--back tracking--字符数组

17 给出一个电话拨号盘,数字2-9代表一些字母,已知数字,求出所有字母的可能 例子 比如 求"23" , 2--->"abc" 3-->"def" 画出递归数其实非常简单: 和77.Combinations 本质上是一样的, 都是求所排列问题,但和数字排列不同的时,每一次需要遍历的数组不是固定的,而是根据数的层数来决定的。所以需要设定一个tree_level...

2018-11-11 08:06:00 100

转载 401. Binary Watch -- back tracking

题意: 给你个二进制手表,上面 有两排LED等,第一排为hour, 第二排为minutes。 告诉你表上有n 个LED 灯亮着,输出所有可能的时间。 题解: 把上面 10个 LED 等 抽象成10个数 0~9, 现在亮着 n (n<9) 个灯,表示从 nums 里 取出 n 个数的“排列” int[] nums = {0,1,2,3,4,5...

2018-11-10 15:36:00 94

转载 139/140. Word Break II/377. Combination Sum IV--back tracking +Memoization

和39.Combination Sum 不同的是,377 可以把不同排列的解认为是不同解,例如 [1,1,2] 和 [2,1,1] 是不同解,并且只需要求出解的个数。 例如 nums = [1, 2, 3] target = 4 The possible combination ways are: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (...

2018-11-10 14:51:00 121

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除