<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[RedDevill的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/RedDevill</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; RedDevill]]></copyright><item><title><![CDATA[LeetCode538-20.9.21-二叉搜索树转换为累加树]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108718097</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108718097</guid><author>RedDevill</author><pubDate>Mon, 21 Sep 2020 20:18:39 +0800</pubDate><description><![CDATA[题目链接：
LeetCode538
思路：dfs反中序遍历树
看题解收获：morris减少空间复杂度
代码：
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    priva]]></description><category></category></item><item><title><![CDATA[LeetCode77-20.9.8-组合]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108474804</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108474804</guid><author>RedDevill</author><pubDate>Tue, 08 Sep 2020 18:58:47 +0800</pubDate><description><![CDATA[链接：LeetCode77
过程：怎么感觉脑子如此生涩，回忆起组合的知识，习惯性看题解。理解简单，开始的时候想难。。。
思路：枚举状态
代码:
class Solution {
    List&lt;List&lt;Integer&gt;&gt; ans=new ArrayList&lt;&gt;();
    List&lt;Integer&gt; temp=new ArrayList&lt;&gt;();
    int n,k;
    public List&lt;List&lt;Integer&]]></description><category></category></item><item><title><![CDATA[LeetCode107-20.9.7-二叉树的层次遍历]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108439590</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108439590</guid><author>RedDevill</author><pubDate>Mon, 07 Sep 2020 00:19:08 +0800</pubDate><description><![CDATA[链接：LeetCode107
过程：略
思路：遍历树
代码：
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List&lt;List&lt;Intege]]></description><category></category></item><item><title><![CDATA[LeetCode60-20.9.5-第k个排列]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108426145</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108426145</guid><author>RedDevill</author><pubDate>Sat, 05 Sep 2020 23:29:53 +0800</pubDate><description><![CDATA[链接：LeetCode60
过程：意识到暴力不可取，想直接算第k个，看了看题解。
思路：问题转化，缩小求解规模，抛弃无用计算
代码：
class Solution {
    public String getPermutation(int n, int k) {
        int[] factorial=new int[n];
        factorial[0]=1;
        for(int i=1;i&lt;n;i++)factorial[i]=factorial[i-1]*i;
 ]]></description><category></category></item><item><title><![CDATA[LeetCode257-20.9.4-二叉树的所有路径]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108410774</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108410774</guid><author>RedDevill</author><pubDate>Fri, 04 Sep 2020 20:01:11 +0800</pubDate><description><![CDATA[链接：LeetCode257
过程：我一眼就看出（你不是人 ）是树的遍历。
思路：树的遍历，dfs或者bfs
代码：
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    L]]></description><category></category></item><item><title><![CDATA[LeetCode51-20.9.3-N皇后]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108392606</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108392606</guid><author>RedDevill</author><pubDate>Thu, 03 Sep 2020 20:28:50 +0800</pubDate><description><![CDATA[链接：LeetCode51
过程：略
思路：枚举回溯
代码：
class Solution {
    List&lt;List&lt;String&gt;&gt; ans=new ArrayList&lt;&gt;();
    List&lt;String&gt; temp=new ArrayList&lt;&gt;();
    boolean[][] fail=null;
    int n;
    public List&lt;List&lt;String&gt;&gt; solveNQueen]]></description><category></category></item><item><title><![CDATA[剑指Offer30-20.9.2-表示数值的字符串]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108369879</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108369879</guid><author>RedDevill</author><pubDate>Wed, 02 Sep 2020 20:36:49 +0800</pubDate><description><![CDATA[链接：题目
思路与算法：有限状态自动机
题解代码:
class Solution {
    public boolean isNumber(String s) {
        Map&lt;State, Map&lt;CharType, State&gt;&gt; transfer = new HashMap&lt;State, Map&lt;CharType, State&gt;&gt;();
        Map&lt;CharType, State&gt; initialMap = new H]]></description><category></category></item><item><title><![CDATA[LeetCode486-20.9.1-预测赢家]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108351624</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108351624</guid><author>RedDevill</author><pubDate>Tue, 01 Sep 2020 21:55:32 +0800</pubDate><description><![CDATA[链接:LeetCode486
过程：cv
思路：递归，dp
代码：
class Solution {
    public boolean PredictTheWinner(int[] nums) {
        int length = nums.length;
        int[][] dp = new int[length][length];
        for (int i = 0; i &lt; length; i++) {
            dp[i][i] = nums[i]]></description><category></category></item><item><title><![CDATA[2020-08-31]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108328779</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108328779</guid><author>RedDevill</author><pubDate>Mon, 31 Aug 2020 20:27:31 +0800</pubDate><description><![CDATA[链接：LeetCode841
过程：略
思路：搜索，dfs,bfs
代码：
class Solution {
    List&lt;List&lt;Integer&gt;&gt; rooms=null;
    boolean[] vis=null;
    int num=0;
    public boolean canVisitAllRooms(List&lt;List&lt;Integer&gt;&gt; rooms) {
        if(rooms==null)return true;
 ]]></description><category></category></item><item><title><![CDATA[LeetCode557-20.8.30-反转字符串的单词]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108309146</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108309146</guid><author>RedDevill</author><pubDate>Sun, 30 Aug 2020 18:10:23 +0800</pubDate><description><![CDATA[链接：LeetCode557
过程：略
思路：遍历字符串反转单词
代码：
class Solution {
    public String reverseWords(String s) {
        StringBuilder sb=new StringBuilder();
        StringBuilder ans=new StringBuilder();
        int pr=0;
        for(int i=0;i&lt;s.length();i++){
      ]]></description><category></category></item><item><title><![CDATA[LeetCode214-20.8.29-最短回文串]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108298642</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108298642</guid><author>RedDevill</author><pubDate>Sat, 29 Aug 2020 19:51:09 +0800</pubDate><description><![CDATA[链接：LeetCode214
过程：cv大法好
思路：看题解
代码：
class Solution {
    public String shortestPalindrome(String s) {
        int n = s.length();
        int[] fail = new int[n];
        Arrays.fill(fail, -1);
        for (int i = 1; i &lt; n; ++i) {
            int j = fa]]></description><category></category></item><item><title><![CDATA[LeetCode657-20.8.28-机器人能否返回原点]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108285047</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108285047</guid><author>RedDevill</author><pubDate>Fri, 28 Aug 2020 18:37:14 +0800</pubDate><description><![CDATA[链接：LeetCode657
过程：略
思路：略
代码：
class Solution {
    public boolean judgeCircle(String moves) {
        int a=0,b=0,c=0,d=0;
        for(int i=0;i&lt;moves.length();i++){
            switch(moves.charAt(i)){
                case 'L':a++;break;
               ]]></description><category></category></item><item><title><![CDATA[LeetCode332-20.8.27-重新安排行程]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108266864</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108266864</guid><author>RedDevill</author><pubDate>Thu, 27 Aug 2020 19:01:26 +0800</pubDate><description><![CDATA[链接：LeetCode332
过程：略
思路：看题解，欧拉回路或通路用Hierholzer算法
代码：
class Solution {
    Map&lt;String,PriorityQueue&lt;String&gt;&gt; map=new HashMap&lt;&gt;();
    LinkedList&lt;String&gt; ans=new LinkedList&lt;&gt;();
    public List&lt;String&gt; findItinerary(List&lt]]></description><category></category></item><item><title><![CDATA[LeetCode17-20.8.26-电话号码的字母组合]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108237411</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108237411</guid><author>RedDevill</author><pubDate>Wed, 26 Aug 2020 12:07:36 +0800</pubDate><description><![CDATA[链接：LeetCode17
过程：略
思路: 回溯来枚举
代码;
class Solution {
    List&lt;String&gt; list=new ArrayList&lt;&gt;();
    StringBuilder temp=new StringBuilder();
    char[][] pattern=new char[][]{
        {'a','b','c'},
        {'d','e','f'},
        {'g','h','i'},
     ]]></description><category></category></item><item><title><![CDATA[LeetCode491-20.8.25-递增子序列]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108230538</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108230538</guid><author>RedDevill</author><pubDate>Tue, 25 Aug 2020 22:49:22 +0800</pubDate><description><![CDATA[链接：LeetCode491
过程：略
思路：枚举
代码：
class Solution {
    List&lt;Integer&gt; temp=new ArrayList&lt;&gt;();
    List&lt;List&lt;Integer&gt;&gt; ans=new ArrayList&lt;&gt;();
    public List&lt;List&lt;Integer&gt;&gt; findSubsequences(int[] nums) {
        dfs(0,In]]></description><category></category></item><item><title><![CDATA[LeetCode459-20.8.24-重复的子字符串]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108203494</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108203494</guid><author>RedDevill</author><pubDate>Mon, 24 Aug 2020 17:21:58 +0800</pubDate><description><![CDATA[链接：LeetCode459
过程：用的枚举方法，看题解，知道了还有方法二和kmp写的方法二。
思路：枚举字串、字串匹配。
我的枚举代码：
class Solution {
    public boolean repeatedSubstringPattern(String s) {
        StringBuilder sb=new StringBuilder();
        int lens=s.length();
        for(int i=0;i&lt;lens-1;i++){
]]></description><category></category></item><item><title><![CDATA[LeetCode201-20.8.23-数字范围按位与]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108181198</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108181198</guid><author>RedDevill</author><pubDate>Sun, 23 Aug 2020 11:46:46 +0800</pubDate><description><![CDATA[链接：LeetCode201
过程：想了想，看题解，求前缀用位移和Brian Kernighan算法
思路：略
代码：
class Solution {
    public int rangeBitwiseAnd(int m, int n) {
        int cnt=0;
        while(m&lt;n){
            n=n&amp;(n-1);
        }
        return n;
    }
}


...]]></description><category></category></item><item><title><![CDATA[LeetCode679-20.8.22-24点游戏]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108173332</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108173332</guid><author>RedDevill</author><pubDate>Sat, 22 Aug 2020 19:39:18 +0800</pubDate><description><![CDATA[链接：LeetCode679
过程：以前做过，快忘记了，枚举所有可能的情况，判断一下就行
思路：用回溯来枚举状态
代码：
class Solution {
    public boolean judgePoint24(int[] nums) {
        int[] hh=new int[4];
        for(int i=0;i&lt;4;i++)hh[i]=1;
        return dfs(nums,hh);
    }
    boolean dfs(int[] a,int[]]></description><category></category></item><item><title><![CDATA[LeetCode111-20.8.21-二叉树的最小深度]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108158092</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108158092</guid><author>RedDevill</author><pubDate>Fri, 21 Aug 2020 21:32:54 +0800</pubDate><description><![CDATA[链接：LeetCode111
过程：略
思路：dfs,看题解觉得bfs较好
代码：
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int minDept]]></description><category></category></item><item><title><![CDATA[LeetCode-2020.8.20-扫雷游戏]]></title><link>https://blog.youkuaiyun.com/RedDevill/article/details/108131915</link><guid>https://blog.youkuaiyun.com/RedDevill/article/details/108131915</guid><author>RedDevill</author><pubDate>Thu, 20 Aug 2020 20:04:23 +0800</pubDate><description><![CDATA[链接:LeetCode529
过程：开始看题目还以往很难，毕竟越长的题目一般越难，觉得还行，模拟+搜索，搜索dfs和bfs基本操作，然后做了，然后错了，然后再看题，再冷静思考，经历了一阵发呆后，原来不是上下左右四种状态而是上下左右加对角八种，然后就可以了。
思路：模拟+搜索
代码：
class Solution {
    char[][] board;
    int[][] dxy={
        {0,0,-1,1,-1,-1,1,1},
        {-1,1,0,0,-1,1,-1,1}
]]></description><category></category></item></channel></rss>