<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ykben的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ykben</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ykben]]></copyright><item><title><![CDATA[分发糖果]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/108732689</link><guid>https://blog.youkuaiyun.com/ykben/article/details/108732689</guid><author>ykben</author><pubDate>Tue, 22 Sep 2020 15:06:39 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/candy/





二、题解参考

https://leetcode-cn.com/problems/candy/solution/candy-cong-zuo-zhi-you-cong-you-zhi-zuo-qu-zui-da-/

只能说妙啊



三、代码


    public int candy(int[] ratings) {
        int len = ratings.length;..]]></description><category></category></item><item><title><![CDATA[最多可以参加的会议数目]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/108599715</link><guid>https://blog.youkuaiyun.com/ykben/article/details/108599715</guid><author>ykben</author><pubDate>Tue, 15 Sep 2020 15:02:26 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/maximum-number-of-events-that-can-be-attended/





二、题目分析

题解参考：https://leetcode-cn.com/problems/maximum-number-of-events-that-can-be-attended/solution/sao-miao-suan-fa-tan-xin-by-lucifer1004/

本题的目的是尽可能地多参加会议]]></description><category></category></item><item><title><![CDATA[K 次操作转变字符串]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/108592274</link><guid>https://blog.youkuaiyun.com/ykben/article/details/108592274</guid><author>ykben</author><pubDate>Tue, 15 Sep 2020 08:39:00 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/can-convert-string-in-k-moves/





二、题目分析

题解参考：https://leetcode-cn.com/problems/can-convert-string-in-k-moves/solution/ji-shu-fa-by-jason-2-5/

理解清楚题意再进行解答。首先一个比较直观的是每个字母的变换次数都是可以计算出来的，我们只需要判断每个字母的转换是不是小于题目的.]]></description><category></category></item><item><title><![CDATA[完全二叉树的节点数]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/108455631</link><guid>https://blog.youkuaiyun.com/ykben/article/details/108455631</guid><author>ykben</author><pubDate>Mon, 07 Sep 2020 20:40:24 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/count-complete-tree-nodes/





二、题目分析

题解膜拜：https://leetcode-cn.com/problems/count-complete-tree-nodes/solution/chang-gui-jie-fa-he-ji-bai-100de-javajie-fa-by-xia/

真的是妙蛙种子吃着妙脆角进了妙妙屋，妙到家了。

这道题结合完全二叉树的性质，再想象一.]]></description><category></category></item><item><title><![CDATA[部分排序]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/108253185</link><guid>https://blog.youkuaiyun.com/ykben/article/details/108253185</guid><author>ykben</author><pubDate>Thu, 27 Aug 2020 09:51:34 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/sub-sort-lcci/





二、题目分析

题解参考：https://leetcode-cn.com/problems/sub-sort-lcci/solution/yi-bian-bian-li-shuang-zhi-zhen-by-chen-wei-zhe/

我们从左到右遍历，如果说数组是升序的，就不用操作，如果遇到一个数字跟前面的数组无法组成升序序列，那这个数字就是需要交换的，我们记录这个下标位.]]></description><category></category></item><item><title><![CDATA[生存人数]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/108246625</link><guid>https://blog.youkuaiyun.com/ykben/article/details/108246625</guid><author>ykben</author><pubDate>Wed, 26 Aug 2020 20:07:15 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/living-people-lcci/



二、题目分析

参考题解：https://leetcode-cn.com/problems/living-people-lcci/solution/java2msyong-shu-zu-bao-cun-mei-nian-xin-zeng-ren-s/

因为年份是有限的，所以我们可以计算每个年份新增了多少人，减少了多少人，计算出每一年人数的变化情况，然后从1900开始遍历]]></description><category></category></item><item><title><![CDATA[面试之手撕代码]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107946416</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107946416</guid><author>ykben</author><pubDate>Tue, 11 Aug 2020 23:17:30 +0800</pubDate><description><![CDATA[一、前言

本文为自己的学习记录，记录一下自己在面试中遇到的一些手撕代码（非算法题目），也是自己复习方便



二、设计模式

1、工厂模式

（1）简单工厂


// 抽象产品角色
public interface Product {
    void getInfo();
}



// 真实产品A
public class ProductA implements Product {
    @Override
    public void getInfo() {
        System.ou.]]></description><category></category></item><item><title><![CDATA[最大得分]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107796939</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107796939</guid><author>ykben</author><pubDate>Tue, 04 Aug 2020 20:00:01 +0800</pubDate><description><![CDATA[一、题目描述

题目连接：https://leetcode-cn.com/problems/get-the-maximum-score/





二、题目分析

题解参考：https://leetcode-cn.com/problems/get-the-maximum-score/solution/java-double-points-by-carl-x-2/

这道题好妙啊，虽然第一眼就觉得使用双指针，但是不知道从哪下手，看了题解后，妙啊妙啊。

这道题的关键在于两个数组如果有元素相同，就可以选择切换.]]></description><category></category></item><item><title><![CDATA[单词拆分]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107681506</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107681506</guid><author>ykben</author><pubDate>Thu, 30 Jul 2020 09:22:24 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/word-break/





二、题目分析

题解：https://leetcode-cn.com/problems/word-break/solution/dan-ci-chai-fen-by-leetcode-solution/

这道题使用的是类似前缀和的思路解决，我们想找出s的是否能切割出一些子串，这些子串全都是在wordDict中，判断在wordDict中其实比较好写，因为String是不可变的，所以.]]></description><category></category></item><item><title><![CDATA[戳气球]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107606483</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107606483</guid><author>ykben</author><pubDate>Mon, 27 Jul 2020 10:53:44 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/burst-balloons/





二、题目分析

第一眼看到题目的思路还是很直观的，就是dfs列举所有情况，然后使用memo来剪枝，但是还是超时了，以为是压缩状态写得不对，看了题解才知道自己还是太年轻了。

题解参考：https://leetcode-cn.com/problems/burst-balloons/solution/zhe-ge-cai-pu-zi-ji-zai-jia-ye-neng-zuo.]]></description><category></category></item><item><title><![CDATA[规划兼职工作]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107483165</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107483165</guid><author>ykben</author><pubDate>Tue, 21 Jul 2020 10:44:20 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/maximum-profit-in-job-scheduling/





二、题目分析

题解参考：https://leetcode-cn.com/problems/maximum-profit-in-job-scheduling/solution/java-dong-tai-gui-hua-by-zhi-94/

一个比较直观的想法，就是假设我们是一个一个工作加的，每加一个工作，我们有两种选择，一是新的这个工.]]></description><category></category></item><item><title><![CDATA[掷色子模拟]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107480603</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107480603</guid><author>ykben</author><pubDate>Tue, 21 Jul 2020 09:23:50 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/dice-roll-simulation/





二、题目分析

当我们掷色子的时候，投出什么点数都跟前面的点数无关，但是题目给了一点限制，就是连续的点数不能超过某一个值，因此这是一个有限制的排列。

对于这种设计连续的题目，可以考虑用高维数组来解决。这里我们使用dp[i][j][k]来表示，在投 i 次的情况下，以连续的 k 次 j 点数结尾的排列组合。这里k有两种种情况。

1、k = 1，即以一个 j 结.]]></description><category></category></item><item><title><![CDATA[最大平均值和的分组]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107471801</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107471801</guid><author>ykben</author><pubDate>Mon, 20 Jul 2020 20:08:13 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/largest-sum-of-averages/





二、题目分析

题解参考：https://leetcode-cn.com/problems/largest-sum-of-averages/solution/java-di-gui-jie-fa-by-don-vito-corleone-12/

本题使用动态规划的思想解决，首先需要找到状态转移方程。

我们使用一个数组dp[i][k]来表示在前i个数的情.]]></description><category></category></item><item><title><![CDATA[填充书架]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107349060</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107349060</guid><author>ykben</author><pubDate>Tue, 14 Jul 2020 22:25:27 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/filling-bookcase-shelves/





二、题目分析

题解参考：https://leetcode-cn.com/problems/filling-bookcase-shelves/solution/chang-gui-dong-tai-gui-hua-jie-fa-by-liu-li-cui-ca/

本题的策略是，一本一本地往书架上放书，每一本新书我们都放到下面一层空的书架上，然后再把上面.]]></description><category></category></item><item><title><![CDATA[新21点]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107330531</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107330531</guid><author>ykben</author><pubDate>Tue, 14 Jul 2020 09:21:33 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/new-21-game/





二、题目分析

参考题解：https://leetcode-cn.com/problems/new-21-game/solution/javani-xiang-dong-tai-gui-hua-jie-jue-shuang-100-b/

具体的想法可以看看题解，我也说不出什么新的东西，在下面会在代码上加上自己的注解，帮助理解。



三、代码


    public dou..]]></description><category></category></item><item><title><![CDATA[石子游戏]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107313816</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107313816</guid><author>ykben</author><pubDate>Mon, 13 Jul 2020 11:36:07 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/stone-game/





二、题目分析

可以使用搜索的方法来解决。对于每次操作，都有两个选择，拿最左边的石堆或者拿最右边的石堆，剩下的可以到下一层递归，而且这里是可以使用memo优化的，因为先拿左边再拿右边，和先拿右边再拿左边是等价的。



三、代码


    private Integer[][] memo;
    public boolean stoneGame(int[] piles) {
..]]></description><category></category></item><item><title><![CDATA[出界的路径数]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107304383</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107304383</guid><author>ykben</author><pubDate>Sun, 12 Jul 2020 20:04:41 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/out-of-boundary-paths/





二、题目分析

经典记忆搜索，题解参考：https://leetcode-cn.com/problems/out-of-boundary-paths/solution/ji-yi-hua-di-gui-chao-jian-ji-by-pwrliang/



三、代码


    private int[] dirs = {0,1,0,-1,0};
    ..]]></description><category></category></item><item><title><![CDATA[K个逆序对数组]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107242781</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107242781</guid><author>ykben</author><pubDate>Fri, 10 Jul 2020 09:30:32 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/k-inverse-pairs-array/





二、题目分析

题解：https://leetcode-cn.com/problems/k-inverse-pairs-array/solution/dong-tai-gui-hua-xiang-jie-by-jerry_nju/

题目有两个变量，对于这种题可以尝试用二维dp解决，但是还是得分析明白。

我们先不考虑k，假设我们有n个数，我们如何找到所有可能.]]></description><category></category></item><item><title><![CDATA[比特位计数]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107214026</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107214026</guid><author>ykben</author><pubDate>Wed, 08 Jul 2020 20:05:50 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/counting-bits/



二、题目分析

题解参考：https://leetcode-cn.com/problems/counting-bits/solution/hen-qing-xi-de-si-lu-by-duadua/

自己分析没分析出来，看完题解，忍不住妙出了声。

对于数字有两类，偶数与奇数，从二进制的角度看，奇数的二进制标示肯定比前面一个偶数多1，因为偶数的最低为0，而因为最低为为0，则让.]]></description><category></category></item><item><title><![CDATA[最长湍流子数组]]></title><link>https://blog.youkuaiyun.com/ykben/article/details/107197368</link><guid>https://blog.youkuaiyun.com/ykben/article/details/107197368</guid><author>ykben</author><pubDate>Wed, 08 Jul 2020 09:07:41 +0800</pubDate><description><![CDATA[一、题目描述

题目链接：https://leetcode-cn.com/problems/longest-turbulent-subarray/



二、题目分析

这道题跟摆动数组非常类似，可以说用同种解法了，区别就是数组是否连续。

可以参考博客：https://mp.youkuaiyun.com/console/editor/html/107149523



三、代码


    public int maxTurbulenceSize(int[] A) {
        int len = A.le..]]></description><category></category></item></channel></rss>