Leetcode
文章平均质量分 63
Daisy么么哒
这个作者很懒,什么都没留下…
展开
-
Longest Repeating Character Replacement
Window只扩大不缩小。譬如说当K = 3的时候,你有一个abcdffesdaf,那么譬如abcd或者cdffe之类的都是符合条件的Window,因为abcd有四个字符,出现最多的单个字符的长度也只有1,那么你可以同时replace 4 - 1 = 3个使之成为一个有效的window,cdffe也类似,出现最多的单个字符是f,出现了两次,+3 = 5,也是有效的。如果你想一直维持一个有效的window,那么你必须在遍历的时候永远知道当前window里出现最多的字符是什么,出现最多的次数是多少。...原创 2022-08-05 17:21:11 · 197 阅读 · 1 评论 -
[LC] 489. Robot Room Cleaner
https://leetcode.com/problems/robot-room-cleaner/这一题,我第一次面fb的时候,被挂过。所以还是想过一下的。这题只能dfs做,因为它的限制就是你只能一格格一步步走,没办法像bfs所需要的那样跳着格子一层层的走。所以你要做的就是每到一个格子,就四个方向走,同时用某种方式记录你走过的位置以免重复走,但是你这玩意儿,它还需要回头走回你来的方向的...原创 2019-12-17 15:45:12 · 248 阅读 · 0 评论 -
[LC] 480. Sliding Window Median
https://leetcode.com/problems/sliding-window-median/这题就是这一题的延伸版本:https://blog.csdn.net/chaochen1407/article/details/82688222可以直接在这一题的原做法上加一个删除的操作即可。就是当这个window走过一个元素,就从两边的queue中某个删除掉就可以了。但是从prio...原创 2019-12-17 02:08:15 · 183 阅读 · 0 评论 -
[LC]463. Island Perimeter
这题是easy题,所以很easy。不过,还是有点可以取巧的地方。最开始的最naive的做法就是走完整个方阵,走到每个方格的时候,首先设置基础周长为4,因为周围四个边。然后看上下左右四个方向有没有方格, 有的话就减一。然后得到的数字加到结果里即可。根据这个算法可以得到代码如下: public int islandPerimeter(int[][] grid) { ...原创 2019-12-16 12:45:15 · 141 阅读 · 0 评论 -
[LC] 452. Minimum Number of Arrows to Burst Balloons
https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/这一题让我想起了另一题,如果在一群schedule里面得到所需的最少的meeting room。https://blog.csdn.net/chaochen1407/article/details/81282319那一题本质就是找最大的ove...原创 2019-12-16 12:36:16 · 330 阅读 · 0 评论 -
[LC] 449. Serialize and Deserialize BST
https://leetcode.com/problems/serialize-and-deserialize-bst/一般来说serialize和deserialize的要求就是这个数据能够完整且表示唯一的数据结构。有点像充要条件的意思。对于一般的binary tree,充要条件可能为一个preorder的数组和inorder的数组,也可能为一个inorder的数组和一个postorde...原创 2019-12-16 10:00:27 · 141 阅读 · 0 评论 -
[LC] 442. Find All Duplicates in an Array
看到最初始的条件,1 <= a[i] <= n (n = size of array)。我最开始能够想到的是https://blog.csdn.net/chaochen1407/article/details/43230993上面这种做法的根本就是让众神归位,就是把数字放到放到它该呆的位置,也就是把num放到arr[num - 1],然后上面那题,是找到不存在的数字,而这一题,...原创 2019-12-16 09:08:18 · 109 阅读 · 0 评论 -
[LC] 438. Find All Anagrams in a String
https://leetcode.com/problems/find-all-anagrams-in-a-string/这一题,其实和很多题目都一样或者类似,先通过字符串p算出一个字符table, 然后就是维持一个window,数一下window里面各个字符有多少,然后匹配到p字符串的字符table,如果相同就记录。代码如下: public List<Integer>...原创 2019-12-16 08:02:47 · 112 阅读 · 0 评论 -
[LC] 430. Flatten a Multilevel Doubly Linked List
https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/这题其实是非常直观的dfs题目,每次遇到child的时候,进入下一层dfs,这个dfs需要返回两个点,一个是child list的头,另一个是child list的尾。此时遍历到的这个节点的next就会成为child list的头,child list...原创 2019-12-16 07:54:02 · 122 阅读 · 0 评论 -
[LC] 428. Serialize and Deserialize N-ary Tree
https://leetcode.com/problems/serialize-and-deserialize-n-ary-tree/实话说在我心目中leetcode里面的题目,有些hard是属于需要很巧妙的解法,有些hard是属于很烦但是不太涉及很巧妙的算法。这一题就属于很麻烦的那一种。其实这样的serialize和deserialize核心算法还是bfs或者dfs,题目的描述里其实...原创 2019-12-15 18:46:40 · 244 阅读 · 0 评论 -
[LC] 426. Convert Binary Search Tree to Sorted Doubly Linked List
BST换排好序的任何数据结构用脚趾头想都应该是inorder的dfs。这里也就是dfs中间穿插一些前后连接的操作就行了。给出两种解法,一个是递归做的,一个是用Stack做的。(意想不到的是递归的比Stack的要快) public Node treeToDoublyList(Node root) { if (root == null) return null;...原创 2019-12-15 12:22:09 · 123 阅读 · 0 评论 -
[LC] 419. Battleships in a Board
正常来说,这种找一个图里面有多少个island的题目都是用什么dfs来做的。就是dfs走遍一个island或者battleship然后mark visited之类的。这题也是可以的。当然follow up就肯定不是这样了。这题给了一个很给力的条件,就是所有的battleship都是一条线。要不就是直的,要不就是横的,并且任意两条船之间,都有空位,不能相邻。所以这个时候,其实我们只需要找到每条b...原创 2019-12-15 11:19:04 · 190 阅读 · 0 评论 -
[LC] 417. Pacific Atlantic Water Flow
这一题是一题有点典型又有点非典型的图论题典型在于它除了BFS或者DFS然后记录visited之外没有什么高级货。非典型在于一般我们都在图内的某些特异点进行dfs或者bfs,我最开始考虑的是图上每个点做dfs然后从中间点往两边海域自下而上的dfs,一旦遇到比自己高的点就停下来,如果遇到边界就自下而上返回true这样。可是这会存在一个无法解决的问题就是,如果存在同样高度的点,你是没办法把它记录成...原创 2019-11-20 18:22:34 · 123 阅读 · 0 评论 -
[LC] 416. Partition Equal Subset Sum
这题是0-1背包问题的变种,类似的还有另一题是完全背包问题是https://blog.csdn.net/chaochen1407/article/details/90767890。当初没认出来它其实是一个完全背包问题。主要是自己对背包问题也没有很好的学习过。这题需要一定的转换才能看成是一个背包问题。它题意的意思是可以把这个array变成两个不重叠的部分,两个部分的和是一样的。所以,任意一...原创 2019-11-17 08:32:40 · 117 阅读 · 0 评论 -
[LC] 328. Odd Even Linked List
https://leetcode.com/problems/odd-even-linked-list/很久没有试过不看提示自己很快解决一道medium题了,今天终于搞定了一道。也不知道是不是因为太简单了。。这题一个很直接的一个想法就是将链表先分拆成两条链,一条odds链一条even链然后odds链连接even链就可以了。关键就是如何分拆了。我看到这题目的时候让我有点想到当年我遇到的第一条...原创 2019-11-07 17:39:12 · 139 阅读 · 0 评论 -
[LC] 405. Convert a Number to Hexadecimal
https://leetcode.com/problems/convert-a-number-to-hexadecimal/嗯,就因为开头那一句负数参考补码,我研究了半天的补码。然后我发现...其实根本就不是那么回事。如果这一题不允许负数的话,最直观的想法就是不停的模16然后除以16即可。然后看了看补码,想该怎么变换数字才能够继续这种无脑模16除16,发现这样做真的很复杂。所以换一种思维...原创 2019-11-07 16:48:08 · 154 阅读 · 0 评论 -
[LC] 398. Random Pick Index
https://leetcode.com/problems/random-pick-index/Well.. 这一题,直白的方法太多了。譬如直接扣一个Map<Integer, List<Integer>>的cache,然后每次就先从map里面找到那个index list,然后用Random.nextInt选出来就好。这个方法构造函数是O(n)的,然后pick是O(1...原创 2019-11-07 16:07:03 · 187 阅读 · 0 评论 -
[LC] 394. Decode String
https://leetcode.com/problems/decode-string/这一题给的条件太友善了,主要是没有3a或者2[4]这样的输出,这样逻辑判断就很简单了。因为中括号允许内部嵌套,这样的话最好的方式还是自下而上的dfs递归会比较方便。用一个全局的遍历计数器,然后基本就是分几个case1. 遇到0 ~ 9,就算进一个counter里表示对下一层递归返回的字符串重复多少次...原创 2019-11-07 15:32:47 · 197 阅读 · 0 评论 -
[LC] 388. Longest Absolute File Path
这种文件系统的题目很大程度上都是依赖于Stack来解决问题的。这一题也是,你用Stack来表示现在是第几级别的子文件夹。这一题有一个隐含条件就是子文件夹的级数的增加是一级级递增的(减少并不是)。如果我们用隔行符(\n)作为字符分割的字符的话。我们得到的每一个子字符串就是一条path记录。因为是一级级递增的,所以你不会存在现在这个path是\t\t\dirA,然后下一个\t\t\t\t\dirB...原创 2019-11-02 00:22:42 · 132 阅读 · 0 评论 -
[LC] 312. Burst Balloons (先只放代码, 具体分析稍后再放)
这一题是dp题,具体可以参考https://www.cnblogs.com/grandyang/p/5006441.html这一段代码是我自己的,尽量没有用到额外的空间。 public int maxCoins(int[] nums) { if (nums.length == 0) return 0; int[][] dp = new i...原创 2019-10-28 07:47:45 · 106 阅读 · 0 评论 -
Leetcode -- Implement strStr()
问题链接:https://oj.leetcode.com/submissions/detail/17799169/问题描述:Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.问题API: public int strStr(S原创 2015-01-27 08:23:48 · 278 阅读 · 0 评论 -
Leetcode -- Substring with Concatenation of All Words
问题连接:https://oj.leetcode.com/problems/substring-with-concatenation-of-all-words/问题描述:You are given a string, S, and a list of words, L, that are all of the same length. Find all starting indices原创 2015-01-27 15:47:27 · 250 阅读 · 0 评论 -
Leetcode -- Divide Two Integers
问题链接:https://oj.leetcode.com/problems/divide-two-integers/问题描述:Divide two integers without using multiplication, division and mod operator.If it is overflow, return MAX_INT.(实际上就是实现除法)问题API:原创 2015-01-27 10:32:31 · 374 阅读 · 0 评论 -
Leetcode -- Search for a Range
问题链接:https://oj.leetcode.com/problems/search-for-a-range/问题描述:Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm's runtime complexit原创 2015-01-28 14:38:46 · 263 阅读 · 0 评论 -
Leetcode -- Search Insert Position
问题链接:https://oj.leetcode.com/problems/search-insert-position/问题描述:Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it原创 2015-01-28 14:42:49 · 242 阅读 · 0 评论 -
Leetcode -- Valid Sudoku
问题连接:https://oj.leetcode.com/problems/valid-sudoku/问题描述:进链接看吧,我不贴图了。。。。问题API:public boolean isValidSudoku(char[][] board)问题分析:这题其实就很简单,做好每一行每一列每一个3*3的格子的检测就可以了。。直接给代码了: public boolean r原创 2015-01-28 14:44:51 · 201 阅读 · 0 评论 -
Leetcode -- Count and Say
问题链接:https://oj.leetcode.com/problems/count-and-say/问题描述;The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...1 is read off as "one 1" or 1原创 2015-01-28 14:59:09 · 257 阅读 · 0 评论 -
Leetcode -- Combination Sum
问题链接:https://oj.leetcode.com/problems/combination-sum/问题描述:Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.原创 2015-01-28 15:00:53 · 231 阅读 · 0 评论 -
Leetcode -- Combination Sum II
问题连接:https://oj.leetcode.com/problems/combination-sum-ii/问题描述:Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sum原创 2015-01-28 15:06:27 · 278 阅读 · 0 评论 -
Leetcode -- Multiply Strings
http://oj.leetcode.com/problems/multiply-strings/Given two numbers represented as strings, return multiplication of the numbers as a string.Note: The numbers can be arbitrarily large and are non原创 2015-01-28 15:52:45 · 257 阅读 · 0 评论 -
Leetcode -- First Missing Positive
https://oj.leetcode.com/problems/first-missing-positive/ Given an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2.You...原创 2015-01-28 15:12:15 · 256 阅读 · 0 评论 -
lefLeetcode -- Trapping Rain Water
https://oj.leetcode.com/problems/trapping-rain-water/具体描述请进链接看图,里面有图....有图...public int trap(int[] A)问题分析:这题有两种解法。第一种是时间ON,空间ON的。这种解法利用到了本题的第一个特性:当前柱子的水量取决于它左边所有柱子最高的那根和右边所有柱子最高的那根的短者,然后这个短者和当前柱...原创 2015-01-28 15:47:52 · 254 阅读 · 0 评论 -
Leetcode -- Permutations
https://oj.leetcode.com/problems/permutations/Given a collection of numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3原创 2015-01-28 17:02:03 · 229 阅读 · 0 评论 -
Leetcode -- Rotate Image
https://oj.leetcode.com/problems/rotate-image/You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).Follow up:Could you do this in-place?原创 2015-01-28 17:35:33 · 289 阅读 · 0 评论 -
Leetcode -- N-Queens
https://oj.leetcode.com/problems/n-queens/内容见图。public List solveNQueens(int n)原创 2015-01-29 08:06:52 · 293 阅读 · 0 评论 -
Leetcode -- Jump Game
https://oj.leetcode.com/problems/jump-game/Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum原创 2015-01-29 15:54:08 · 217 阅读 · 0 评论 -
Leetcode -- N_Queens II
https://oj.leetcode.com/problems/n-queens-ii/问题描述请进入连接看。。。。有图,有图。。public int totalNQueens(int n)本题就是N-queen那一题http://blog.csdn.net/chaochen1407/article/details/43265879 一样的,只是把最后列举出所有答案的过程原创 2015-01-29 14:44:04 · 304 阅读 · 0 评论 -
Leetcode -- Maximum Subarray
https://oj.leetcode.com/problems/maximum-subarray/Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,原创 2015-01-29 14:54:04 · 248 阅读 · 0 评论 -
Leetcode -- Merge Intervals
https://oj.leetcode.com/problems/merge-intervals/Given a collection of intervals, merge all overlapping intervals.For example,Given [1,3],[2,6],[8,10],[15,18],return [1,6],[8,10],[15,18].原创 2015-01-29 16:26:52 · 271 阅读 · 0 评论 -
Leetcode -- Anagrams
https://oj.leetcode.com/problems/anagrams/Given an array of strings, return all groups of strings that are anagrams.Note: All inputs will be in lower-case.public List anagrams(String[] str原创 2015-01-28 17:46:21 · 270 阅读 · 0 评论