<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[STU756的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/STU756</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; STU756]]></copyright><item><title><![CDATA[创建型模式--单例模式]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/127293557</link><guid>https://blog.youkuaiyun.com/STU756/article/details/127293557</guid><author>STU756</author><pubDate>Thu, 13 Oct 2022 03:31:33 +0800</pubDate><description><![CDATA[单例模式]]></description><category></category></item><item><title><![CDATA[设计模式和设计原则]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/127293373</link><guid>https://blog.youkuaiyun.com/STU756/article/details/127293373</guid><author>STU756</author><pubDate>Thu, 13 Oct 2022 00:53:30 +0800</pubDate><description><![CDATA[设计模式笔记]]></description><category></category></item><item><title><![CDATA[leetcode31-40]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123202660</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123202660</guid><author>STU756</author><pubDate>Thu, 03 Mar 2022 02:09:25 +0800</pubDate><description><![CDATA[31. 下一个排列


class Solution {
    public void nextPermutation(int[] nums) {
        int len = nums.length, i = len - 1;;
        while(i &gt; 0 &amp;&amp; nums[i-1] &gt;= nums[i]) --i;
        if(i &lt;= 0) {
            reverse(nums, 0, len - 1);
        }]]></description><category></category></item><item><title><![CDATA[LeetCode 24-30]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123132848</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123132848</guid><author>STU756</author><pubDate>Fri, 25 Feb 2022 23:58:28 +0800</pubDate><description><![CDATA[24. 两两交换链表中的节点


class Solution {
    public ListNode swapPairs(ListNode head) {
        ListNode dummy = new ListNode(-1);
        ListNode cur = dummy, pre = head, tail = null;
        cur.next = head;
        while(pre!= null &amp;&amp; pre.next!= null)]]></description><category></category></item><item><title><![CDATA[23. 合并K个排序链表]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123124239</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123124239</guid><author>STU756</author><pubDate>Fri, 25 Feb 2022 01:06:47 +0800</pubDate><description><![CDATA[public class Solution {
    //优先队列：时间复杂度：O(kn*logk） 空间：O(k)
    public ListNode mergeKLists(ListNode[] lists) {
         PriorityQueue&lt;ListNode&gt; minHeap = new PriorityQueue&lt;&gt;((n1, n2)-&gt;n1.val - n2.val); //小根堆
         for(ListNode list : li.]]></description><category></category></item><item><title><![CDATA[LeetCode 20. 有效的括号]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123117985</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123117985</guid><author>STU756</author><pubDate>Fri, 25 Feb 2022 00:43:03 +0800</pubDate><description><![CDATA[class Solution {
    public boolean isValid(String s) {
        int len = s.length();
        if(len % 2== 1) return false;//单数不配对
        Stack&lt;Character&gt; stack = new Stack&lt;&gt;();
        for(char c : s.toCharArray()){
            if(c == '(') .]]></description><category></category></item><item><title><![CDATA[22. 括号生成]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123124171</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123124171</guid><author>STU756</author><pubDate>Fri, 25 Feb 2022 00:42:49 +0800</pubDate><description><![CDATA[class Solution {
    List&lt;String&gt; ans = new ArrayList&lt;&gt;();
    //Time:O(C(n, 2n))  卡特兰数
    public List&lt;String&gt; generateParenthesis(int n) {
        if(n &lt;= 0) return ans;
        dfs(n, 0, 0,"");
        return ans;
    }
    //l表示"(.]]></description><category></category></item><item><title><![CDATA[21. 合并两个有序链表]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123118204</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123118204</guid><author>STU756</author><pubDate>Fri, 25 Feb 2022 00:42:08 +0800</pubDate><description><![CDATA[class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        //辅助节点
        ListNode dummy = new ListNode(-1);
        for(ListNode cur = dummy; l1!= null || l2!=null;) {
            if(l1 == null){
                cur.next = l2;.]]></description><category></category></item><item><title><![CDATA[19. 删除链表的倒数第 N 个结点]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123117862</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123117862</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 18:17:02 +0800</pubDate><description><![CDATA[class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        //辅助节点
        ListNode dummy = new ListNode(-1);
        dummy.next = head;
        //链表长度
        int len = 0;
        ListNode cur = head;
        while(cur != null){.]]></description><category></category></item><item><title><![CDATA[17. 电话号码的字母组合]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123117711</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123117711</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 18:07:06 +0800</pubDate><description><![CDATA[class Solution {
    static String str[] = {
        "", "","abc","def", "ghi","jkl", "mno","pqrs","tuv","wxyz"
    };
    /*
    执行用时：
    5 ms
    , 在所有 Java 提交中击败了
    19.26%
    的用户
    内存消耗：
    41.4 MB
    , 在所有 Java 提交中击败了
    5.02%
    的用户
    */
.]]></description><category></category></item><item><title><![CDATA[18. 四数之和]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123117190</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123117190</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 17:41:23 +0800</pubDate><description><![CDATA[class Solution {
    public List&lt;List&lt;Integer&gt;&gt; fourSum(int[] nums, int target) {
    //双指针
        List&lt;List&lt;Integer&gt;&gt; res = new ArrayList&lt;&gt;();
        if(nums == null || nums.length &lt; 3) return res;
        //排序
        .]]></description><category></category></item><item><title><![CDATA[16. 最接近的三数之和]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123117040</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123117040</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 17:34:57 +0800</pubDate><description><![CDATA[class Solution {
    public int threeSumClosest(int[] nums, int target) {
        int res = Integer.MAX_VALUE, min= Integer.MAX_VALUE;
        //排序
        Arrays.sort(nums);
        for(int i = 0; i &lt; nums.length; i++){
            if(i &gt; 0 &amp;&a.]]></description><category></category></item><item><title><![CDATA[15. 三数之和]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123116737</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123116737</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 17:24:43 +0800</pubDate><description><![CDATA[class Solution {
    //双指针
    public List&lt;List&lt;Integer&gt;&gt; threeSum(int[] nums) {
        List&lt;List&lt;Integer&gt;&gt; res = new ArrayList&lt;&gt;();
        if(nums == null || nums.length &lt; 3) return res;
        //排序
        Arrays.sort.]]></description><category></category></item><item><title><![CDATA[14. 最长公共前缀]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123115519</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123115519</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 16:47:42 +0800</pubDate><description><![CDATA[class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null || strs.length == 0) return "";
        Arrays.sort(strs);
        //取头尾
        int len = Math.min(strs[0].length(), strs[strs.length-1].length());
        in.]]></description><category></category></item><item><title><![CDATA[13. 罗马数字转整数]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123114836</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123114836</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 16:26:49 +0800</pubDate><description><![CDATA[class Solution {
    static Map&lt;Character, Integer&gt; map = new HashMap&lt;&gt;();
    static {
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);.]]></description><category></category></item><item><title><![CDATA[12. 整数转罗马数字]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123114574</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123114574</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 16:18:22 +0800</pubDate><description><![CDATA[class Solution {
    static String[] reps = {
        "M",
        "CM", "D", "CD", "C",
        "XC", "L", "XL", "X",
        "IX", "V", "IV", "I"
    };
    static int[] values = {
        1000,
        900, 500, 400, 100,
        90, 50, 40, 10,
      .]]></description><category></category></item><item><title><![CDATA[10. 正则表达式匹配]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123114285</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123114285</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 16:08:31 +0800</pubDate><description><![CDATA[public class Solution {
    public boolean isMatch(String s, String p) {
        if(s.length() == 0 &amp;&amp; p.length() == 0) return true;
        if(p.length() == 0) return false;
        boolean dp[][] = new boolean[s.length() + 1][p.length() + 1];
  .]]></description><category></category></item><item><title><![CDATA[11. 盛最多水的容器]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/123114230</link><guid>https://blog.youkuaiyun.com/STU756/article/details/123114230</guid><author>STU756</author><pubDate>Thu, 24 Feb 2022 16:07:21 +0800</pubDate><description><![CDATA[class Solution {
    //双指针 贪心
    //假设l &lt; r, l 和 r之间是容纳的水是最优解。
    //当i到达左边边界l时候，只需要j在r右边位置向左移，height[l] &gt;= height[j],j不停的移动到r就是找到最优解，
    //所以height[j]&lt;= height[l]严格小于左边界的。
    /*反正法：条件是l到r之间最优解max，r&lt;= j &lt;len, height[j]严格小于height[l]边界。
   .]]></description><category></category></item><item><title><![CDATA[5. 最长回文子串]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/81677182</link><guid>https://blog.youkuaiyun.com/STU756/article/details/81677182</guid><author>STU756</author><pubDate>Wed, 23 Feb 2022 13:10:35 +0800</pubDate><description><![CDATA[//动态规划
    //假设字符串下标为i到j之间判断是否是回文串，dp[i][j](其中i &amp;lt;= j)，
    //如果s.charAt(i)==s.chatAt(j)那么需要判断从下标i+1到下标j-1是否为回文串，即dp[i+1][j-1]（其中i+1&amp;lt;=j-1）是否是回文串
    //dp[i][j] = 1 (i==j)
    //         =s.c...]]></description><category></category></item><item><title><![CDATA[Spring Framework源码下载编译]]></title><link>https://blog.youkuaiyun.com/STU756/article/details/107822066</link><guid>https://blog.youkuaiyun.com/STU756/article/details/107822066</guid><author>STU756</author><pubDate>Wed, 05 Aug 2020 21:46:08 +0800</pubDate><description><![CDATA[环境：

win10

jdk11（更低版本jdk没有jdk.jfr.events类包）

spring framework5.3.0-SNAPSHOT(2020/8/4下载最新就这个版本)

IDEA2020.1.2（由于IDEA2018和gradle高级版本不兼容，所以选重新安装了个2020版的）

一、github太卡了，在gitee上下载（预先装好git）

git clone https://gitee.com/mirrors/Spring-Framework.git

下载完是5.3.0-SNA]]></description><category></category></item></channel></rss>