<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dream_one_day的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dream_one_day</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dream_one_day]]></copyright><item><title><![CDATA[和为S的连续正数序列(java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104861876</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104861876</guid><author>dream_one_day</author><pubDate>Sat, 14 Mar 2020 16:12:22 +0800</pubDate><description><![CDATA[小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
由题目可知信息：所需结果为 d=1，项数n 的和为S的...]]></description><category></category></item><item><title><![CDATA[二叉树的镜像（Java）]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104767855</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104767855</guid><author>dream_one_day</author><pubDate>Tue, 10 Mar 2020 10:07:14 +0800</pubDate><description><![CDATA[之前一直不敢做二叉树的，感觉贼难，今天两分钟做出了，自己不敢相信????‍竟然这么简单。OMG！真不知道我之前是怎么想的。
操作给定的二叉树，将其变换为源二叉树的镜像。
什么是二叉树的镜像，你是不是还不清楚？上图????

我们先来简化问题：
1.只有根结点，不需要改变
2.只有根结点，一个左孩子，一个右孩子，左右孩子交换即可
3.多个结点，即左孩子和右孩子还有孩子结点，我们可以看出先是交换底层对应的左右孩子...]]></description><category></category></item><item><title><![CDATA[和为S的两个数]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104595717</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104595717</guid><author>dream_one_day</author><pubDate>Sun, 01 Mar 2020 17:27:48 +0800</pubDate><description><![CDATA[输入一个递增排序的数组和一个数字S，在数组中查找两个数，使得他们的和正好是S，如果有多对数字的和等于S，输出两个数的乘积最小的。
注意题目给出的信息：递增排序、两个数的乘积最小
思路
1.当数组为空，或者数组只有一个数时，很明显不符合题意，直接返回。
2.虽然这个方法比较笨，遍历数组找到对应的被减数，当符合条件时，变更结果集。
import java.util.ArrayList;
import ...]]></description><category></category></item><item><title><![CDATA[扑克牌顺子(java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104467960</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104467960</guid><author>dream_one_day</author><pubDate>Sun, 23 Feb 2020 21:50:46 +0800</pubDate><description><![CDATA[LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿！！“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变...]]></description><category></category></item><item><title><![CDATA[从第一个字符串中，删除第二个字符串(Java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104446232</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104446232</guid><author>dream_one_day</author><pubDate>Sat, 22 Feb 2020 16:50:23 +0800</pubDate><description><![CDATA[题目描述：键盘输入两个字符串，从第一个字符串中，删除第二个字符串。
例如
输入：str1:hello，world！     str2:world
输出：hello,!
思路：
1.判断 str1 是否含有 str2，倘若含有才有后续，倘若没有直接输出 str1即可
2.如果含有 str2 ，定位到 str2 在 str1 中的位置
3.根据 str2 的长度来更新是 str1
public voi...]]></description><category></category></item><item><title><![CDATA[将字符串日期排序输出(Java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104445949</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104445949</guid><author>dream_one_day</author><pubDate>Sat, 22 Feb 2020 16:41:34 +0800</pubDate><description><![CDATA[题目描述：键盘输入多个日期，日期之间使用“，”隔开，由于输入的日期顺序可能是乱着的，你需要按照自然顺序输出已排序的日期
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Scanner;
//自定义日期类，定义比较规则
class myData {
    int year, mount...]]></description><category></category></item><item><title><![CDATA[数组中出现次数超过一半的数字(Java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104389657</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104389657</guid><author>dream_one_day</author><pubDate>Wed, 19 Feb 2020 11:36:04 +0800</pubDate><description><![CDATA[数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。
也许下边代码不是最优解，但希望能给你提供一点思路
因为数组元素和出现次数并不是相等的，所以可以使用key-value形式来处理元素，后续获取出 map 中 value 最大的对应的 key...]]></description><category></category></item><item><title><![CDATA[红黑树添加结点之后维护太容易了！！！]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104188546</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104188546</guid><author>dream_one_day</author><pubDate>Wed, 05 Feb 2020 21:59:29 +0800</pubDate><description><![CDATA[提到红黑树，你是不是头皮发麻，难搞哦????，别害怕，我来教你分分钟学会他
我们先来看一下红黑树的定义：
红黑树：
1） 每个节点颜色属性非红即黑
2） 根节点颜色一定是黑色的;
3） 如果一个节点是红的，那么它的两儿子都是黑的;
4） 对于任意节点而言，其到叶子节点的每条路径都包含相同数目的黑色节点数;（因为所有叶子节点都会回到 nil 哨兵结点，故本文忽略哨兵结点）
根据上述定义，我们可以设置红黑树...]]></description><category></category></item><item><title><![CDATA[Arrays中 copyOf 和 System 中 arraycopy 两者的区别]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/104136570</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/104136570</guid><author>dream_one_day</author><pubDate>Sat, 01 Feb 2020 18:42:34 +0800</pubDate><description><![CDATA[【为什么会写这篇博文？】
花花❀看到 Arrays 源码中的 copyOf 方法，底层调用的是 System 中 arraycopy 方法，而且我已经掉过不止一次数组复制的坑????，今天就打算写个博客给我长个记性。
Arrays是一个工具类，该类中几乎所有的方法都是静态方法，也就是说可以通过类名来调用相应的方法。
首先来看以下 copyOf 源码
    public static &lt;T&gt;...]]></description><category></category></item><item><title><![CDATA[字符串转换成整数(Java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/103978167</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/103978167</guid><author>dream_one_day</author><pubDate>Tue, 14 Jan 2020 18:59:19 +0800</pubDate><description><![CDATA[题目描述
将一个字符串转换成一个整数，要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字，否则返回0
思路
1 判断字符串是否为空，如果为空直接返回0
2 由于可以输入符号，故需特殊处理字符串
3 由于整数最小值的绝对值 ＞ 最大值的绝对值，故需处理整数边界问题
4...]]></description><category></category></item><item><title><![CDATA[分割链表（Java）]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/103044710</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/103044710</guid><author>dream_one_day</author><pubDate>Wed, 13 Nov 2019 11:27:14 +0800</pubDate><description><![CDATA[给定一个链表和一个特定值 x，对链表进行分隔，使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。
eg：测试用例。
输入: head = 1-&gt;4-&gt;3-&gt;2-&gt;5-&gt;2, x = 3
输出: 1-&gt;2-&gt;2-&gt;4-&gt;3-&gt;5
-------------------------------...]]></description><category></category></item><item><title><![CDATA[Java中接口和抽象类的区别]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/102898197</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/102898197</guid><author>dream_one_day</author><pubDate>Mon, 04 Nov 2019 17:17:37 +0800</pubDate><description><![CDATA[下午实在敲不进去代码，刚好整理一下，面试中的经常被问道的问题????：你给我讲讲接口与抽象类的区别？
那跟着我来看看叭（基于jdk1.8版本）
看之前我们来了解一个概念，抽象方法。
何为抽象方法？抽象方法即只定义了方法的修饰符、返回值类型、方法名、参数和异常。没有具体的实现行为。例如
void fun();
interface 接口：has-a 问题

对方法的抽象！！！一个类可以实现多个接口。
一个类...]]></description><category></category></item><item><title><![CDATA[二叉搜索树的最近公共祖先(java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/102897274</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/102897274</guid><author>dream_one_day</author><pubDate>Mon, 04 Nov 2019 15:39:53 +0800</pubDate><description><![CDATA[题目描述：

]]></description><category></category></item><item><title><![CDATA[通过& / ^实现整数的加减乘除]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/102846015</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/102846015</guid><author>dream_one_day</author><pubDate>Thu, 31 Oct 2019 21:25:21 +0800</pubDate><description><![CDATA[题目描述： 写一个函数，求两个整数之和，要求在函数体内不得使用+、-、*、/四则运算符号。
我们可以先来观察一个计算式（都用二进制表示）
8 ： 1 0 0 0
7 ： 0 1 1 1
/---------------
&amp; ： 0 0 0 0
^  ： 1 1 1 1
/----------------
8 ： 1 0 0 0
从上边简单的例子可以看出，可以通过简单的按位与操作，就可以达到...]]></description><category></category></item><item><title><![CDATA[两数相加(java)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/102755089</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/102755089</guid><author>dream_one_day</author><pubDate>Sat, 26 Oct 2019 12:25:28 +0800</pubDate><description><![CDATA[题目描述：
算法
就像你在纸上计算两个数字的和那样，我们首先从最低有效位也就是列表 l1l1l1 和 l2l2l2 的表头开始相加。由于每位数字都应当处于 0…90 \ldots 90…9 的范围内，我们计算两个数字的和时可能会出现 “溢出”。例如，5+7=125 + 7 = 125+7=12。在这种情况下，我们会将当前位的数值设置为 222，并将进位 carry=1carry = 1carry=...]]></description><category></category></item><item><title><![CDATA[两数求和Java]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/102685712</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/102685712</guid><author>dream_one_day</author><pubDate>Tue, 22 Oct 2019 17:19:39 +0800</pubDate><description><![CDATA[题目描述：
给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是，你不能重复利用这个数组中同样的元素。
示例：
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
一、暴力解法...]]></description><category></category></item><item><title><![CDATA[快排实现]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/102616693</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/102616693</guid><author>dream_one_day</author><pubDate>Thu, 17 Oct 2019 23:03:16 +0800</pubDate><description><![CDATA[时间复杂度：o(nlog2n)
最优时间复杂度：o(nlog2n)
空间复杂度：o(1)
快排思想就是将数组分为两个部分，分别对两部分再次进行排序，使用快排对数组进行排序，其实就是将大数组转化成小数组，对小规模数组进行排序。
因此为了防止数组越界，快排需要三个参数！！！因为快排是将数组分为两个部分，基准左边的元素都比基准小，基准右边的元素都比基准大。故有时候可能进行排序的只有基准的一边。
快排是一...]]></description><category></category></item><item><title><![CDATA[寻找链表的环入口点+两个链表的相交结点(返回指定的结点值)]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/102246313</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/102246313</guid><author>dream_one_day</author><pubDate>Sun, 06 Oct 2019 20:19:09 +0800</pubDate><description><![CDATA[我们先来了解一下查找链表的环入口点常用的方法。
即使用快慢指针来解决该问题
public Entry loopEntry(){
    if(headEntry == null || headEntry.next == null){
        return null;
    }
    if(headEntry.next == headEntry)
        return headE...]]></description><category></category></item><item><title><![CDATA[source insight 导入JDK源码]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/101194408</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/101194408</guid><author>dream_one_day</author><pubDate>Mon, 23 Sep 2019 10:36:15 +0800</pubDate><description><![CDATA[自己导入过很多次，但是每次都网上搜导入流程????‍，所以决定自己写一个导入流程。
在这里要说一下，首先要解压jdk源码中的src压缩包，为了之后导入源码方便点，建议解压到一个文件夹????中。第4步中浏览源码所在位置，也是浏览的解压后src文件所在目录。
1.打开source insight 界面因该是下面的，你们中间的可能是untitled project（因为我前一个项目是jdk1.8）。

2.选择p...]]></description><category></category></item><item><title><![CDATA[java类加载机制]]></title><link>https://blog.youkuaiyun.com/dream_one_day/article/details/100590295</link><guid>https://blog.youkuaiyun.com/dream_one_day/article/details/100590295</guid><author>dream_one_day</author><pubDate>Sat, 07 Sep 2019 09:52:36 +0800</pubDate><description><![CDATA[在Java语言中，类的加载和连接过程是在程序运行期间完成的，这种方式虽然在类加载的时稍微增加一些性能开销，但是提高了Java应用程序的灵活性，Java动态扩展的语言特性就是依赖运行期动态加载和动态链接这个特点所实现的。
类加载时机
类从加载到JVM中开始，到卸载为止，它的生命周期包括了七个阶段：加载(Loading)、验证(Verification)、准备(Preparation)、解析(Reso...]]></description><category></category></item></channel></rss>