随笔分类 -  数据结构与算法

上一页 1 2 3 4 5 6 ··· 9 下一页
摘要:JAVA: public final boolean canCross(int[] stones) { int len = stones.length; return jump(stones, 0, 0, new HashMap<Long, Boolean>()); } private final 阅读全文
posted @ 2021-07-24 21:28 牛有肉 阅读(92) 评论(0) 推荐(0) 编辑
摘要:JAVA DP 反向: public final int maximalSquare(char[][] matrix) { int xLen = matrix.length, yLen = matrix[0].length, re = 0; int[][] cache = new int[xLen] 阅读全文
posted @ 2021-07-22 23:24 牛有肉 阅读(74) 评论(0) 推荐(0) 编辑
摘要:JAVA DP: public final boolean wordBreak(String s, List<String> wordDict) { Set<String> set = new HashSet<String>(); for (String word : wordDict) set.a 阅读全文
posted @ 2021-07-13 23:55 牛有肉 阅读(67) 评论(0) 推荐(0) 编辑
摘要:JAVA DP: public final int shoppingOffers(List<Integer> price, List<List<Integer>> special, List<Integer> needs) { Map<String, Integer> cache = new Has 阅读全文
posted @ 2021-07-06 13:52 牛有肉 阅读(56) 评论(0) 推荐(0) 编辑
摘要:JAVA: public final ListNode partition(ListNode head, int x) { ListNode leftHead = new ListNode(), rightHead = new ListNode(), left = leftHead, right = 阅读全文
posted @ 2021-06-26 21:39 牛有肉 阅读(40) 评论(0) 推荐(0) 编辑
摘要:. 和 / 的可能组合过多时,分开处理。先按 / 分割字符串,再处理 . 。 JAVA: public final String simplifyPath(String path) { int len = path.length(); StringBuilder sb = new StringBui 阅读全文
posted @ 2021-06-26 19:06 牛有肉 阅读(48) 评论(0) 推荐(0) 编辑
摘要:主函数的剪枝,判断单词是否由数组中的单词组成的函数的记忆化。 public final String longestWord(String[] words) { Arrays.sort(words, (o1, o2) -> { if (o1.length() == o2.length()) retu 阅读全文
posted @ 2021-06-20 23:59 牛有肉 阅读(66) 评论(0) 推荐(0) 编辑
摘要:JAVA: public final List<String> findLadders(String beginWord, String endWord, List<String> wordList) { List<String> re = new LinkedList<String>(); Set 阅读全文
posted @ 2021-06-13 23:33 牛有肉 阅读(71) 评论(0) 推荐(0) 编辑
摘要:JAVA 暴力(BFS): public final int[] findBall(int[][] grid) { int len = grid[0].length; int[] balls = new int[len]; for (int i = 0; i < balls.length; i++) 阅读全文
posted @ 2021-05-30 23:06 牛有肉 阅读(73) 评论(0) 推荐(0) 编辑
摘要:贪心 JAVA: public final int minFlips(String target) { int len = target.length(), num = 0; for (int i = 0; i < len; i++) { char curr = num % 2 == 0 ? '0' 阅读全文
posted @ 2021-05-30 09:12 牛有肉 阅读(60) 评论(0) 推荐(0) 编辑
摘要:JAVA: public final int numWaterBottles(int numBottles, int numExchange) { int re = numBottles, empty = numBottles; while (empty >= numExchange) { int 阅读全文
posted @ 2021-05-09 22:09 牛有肉 阅读(65) 评论(0) 推荐(0) 编辑
摘要:问题的遍历可以通过按顺序尝试每一个锁的所有可能,但是因为需要记录转动次数。尝试可能性的时候并不能很好的记录转动次数。 以转动次数为遍历的线,将每转动一次的所有可能进行记录,并以此为基础计算下一次转动的所有可能性。 当惯用的遍历方式不适合解题时,找到矛盾的点,从矛盾点出发考虑新的遍历方式。 当视角放在 阅读全文
posted @ 2021-05-09 15:47 牛有肉 阅读(72) 评论(0) 推荐(0) 编辑
摘要:回溯解法,JAVA: public final int numTilePossibilities(String tiles) { Set<String> set = new HashSet<String>(); search(tiles.toCharArray(), "", tiles.length 阅读全文
posted @ 2021-04-18 23:13 牛有肉 阅读(75) 评论(0) 推荐(0) 编辑
摘要:暴力法: public final int maxScoreSightseeingPair(int[] values) { int len = values.length, re = 0; for (int i = 0; i < len; i++) { //剪枝用 int maxJ = 0; for 阅读全文
posted @ 2021-04-18 22:11 牛有肉 阅读(56) 评论(0) 推荐(0) 编辑
摘要:JAVA: public final int numRescueBoats(int[] people, int limit) { if (people == null || people.length == 0) return 0; Arrays.sort(people); int len = pe 阅读全文
posted @ 2021-04-18 14:37 牛有肉 阅读(60) 评论(0) 推荐(0) 编辑
摘要:JAVA: public final boolean isSubStructure(TreeNode A, TreeNode B) { if (A == null || B == null) return false; if (isSame(A, B)) return true; return is 阅读全文
posted @ 2021-03-05 20:28 牛有肉 阅读(53) 评论(0) 推荐(0) 编辑
摘要:JAVA: public final int findLengthOfLCIS(int[] nums) { if (nums.length < 2) return nums.length; int len = nums.length, left = 0, right = 1, re = 0; whi 阅读全文
posted @ 2021-03-03 21:54 牛有肉 阅读(49) 评论(0) 推荐(0) 编辑
摘要:顺序合并时间复杂度 O(N) ,远快于任何排序算法。 JAVA: public final List<Integer> getAllElements(TreeNode root1, TreeNode root2) { List<Integer> list1 = new LinkedList<Inte 阅读全文
posted @ 2021-03-03 21:28 牛有肉 阅读(64) 评论(0) 推荐(0) 编辑
摘要:JAVA 红黑树: class ExamRoom { TreeSet<Integer> seats; int last; public ExamRoom(int N) { this.last = N - 1; this.seats = new TreeSet<Integer>(); } public 阅读全文
posted @ 2021-03-03 21:02 牛有肉 阅读(108) 评论(0) 推荐(0) 编辑
摘要:前序遍历与后续遍历的组合可以构成一个完整的子树区间。 子树的根节点会在前序遍历中该子树的首位出现,在后续遍历中则会在该子树的末尾出现。 那么,前序-后序的重合节点所构成的区间,便是以该重合节点为根节点的整棵子树。 进而考虑该思路是否可以一直递归至边界情况。 JAVA: public final Tr 阅读全文
posted @ 2021-03-01 00:17 牛有肉 阅读(142) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 9 下一页