<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[idefined的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/idefined</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; idefined]]></copyright><item><title><![CDATA[并查集——带你手撕出代码，循序渐进，逐步优化]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/107213640</link><guid>https://blog.youkuaiyun.com/idefined/article/details/107213640</guid><author>idefined</author><pubDate>Wed, 08 Jul 2020 21:47:34 +0800</pubDate><description><![CDATA[1.介绍：
在计算机科学中，并查集是一种树型的数据结构，用于处理一些不交集（Disjoint Sets）的合并及查询问题。有一个联合-查找算法（Union-find Algorithm）定义了两个用于此数据结构的操作：
Find：确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。
Union：将两个子集合并成同一个集合。
由于支持这两种操作，一个不相交集也常被称为联合-查找数据结构（Union-find Data Structure）或合并-查找集合（Merge-find Set）。
为了更]]></description><category></category></item><item><title><![CDATA[【快排分区算法，大顶堆】215. 数组中的第K个最大元素]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/107031260</link><guid>https://blog.youkuaiyun.com/idefined/article/details/107031260</guid><author>idefined</author><pubDate>Tue, 30 Jun 2020 00:05:38 +0800</pubDate><description><![CDATA[题目：
在未排序的数组中找到第 k 个最大的元素。请注意，你需要找的是数组排序后的第 k 个最大的元素，而不是第 k 个不同的元素。
示例：

思想：
优先队列的思路是很朴素的。因为第 K 大元素，其实就是整个数组排序以后后半部分最小的那个元素。因此，我们可以维护一个有 K 个元素的最小堆：
1、如果当前堆不满，直接添加；

2、堆满的时候，如果新读到的数小于等于堆顶，肯定不是我们要找的
元素，只有新都到的数大于堆顶的时候，才将堆顶拿出，然后放入新读
到的数，进而让堆自己去调整内部结构。

方法二： 利用快]]></description><category></category></item><item><title><![CDATA[【原地算法】41. 缺失的第一个正数]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/106989636</link><guid>https://blog.youkuaiyun.com/idefined/article/details/106989636</guid><author>idefined</author><pubDate>Sat, 27 Jun 2020 22:55:40 +0800</pubDate><description><![CDATA[问题：
给你一个未排序的整数数组，请你找出其中没有出现的最小的正整数。
例子：

思路
1. 我们将数组中所有小于等于 00 的数修改为 N+1N+1；

2.我们遍历数组中的每一个数 xx，它可能已经被打了标记，
因此原本对应的数为 |x|，其中 ∣∣ 为绝对值符号。如果 ∣x∣∈[1,N]，
那么我们给数组中的第 |x| - 1 个位置的数添加一个负号。
注意如果它已经有负号，不需要重复添加；

3.在遍历完成之后，如果数组中的每一个数都是负数，那么答案是 N+1，
否则答案是第一个正数的位置加 11。]]></description><category></category></item><item><title><![CDATA[Clion debug不输出内容 |  Clion debug输出乱码]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/106694136</link><guid>https://blog.youkuaiyun.com/idefined/article/details/106694136</guid><author>idefined</author><pubDate>Thu, 11 Jun 2020 18:09:52 +0800</pubDate><description><![CDATA[解决方法：

这张图，你能看到的UTF-8 的地方，全部修改成UTF-8。

这个勾也勾上，跟第一张图片同步，那个main.cpp不用管
还是乱码：
setbuf(stdout, NULL);

在你的main函数里加上这句话。

]]></description><category></category></item><item><title><![CDATA[指针常量与常量指针区别 绝对能理解]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/106219449</link><guid>https://blog.youkuaiyun.com/idefined/article/details/106219449</guid><author>idefined</author><pubDate>Tue, 19 May 2020 17:57:13 +0800</pubDate><description><![CDATA[问题引出：

根据const修饰既可以修饰值，又可以修饰指针
分为如下情况：
①const int p; //p就是个常量，这个很熟悉
②const int *p;
③int const *p;
④int * const p;
⑤const int * const p;
⑥int const * const p;
怎么读？

遇到const读作常量
遇到*读作指针

记忆特性技巧

const 在*p之前代表 *p是个常量，*p不可修改
const只是在p之前代表p是个常量，p不可修改

示例
根据怎么读的]]></description><category></category></item><item><title><![CDATA[2020蓝桥杯模拟赛题目（Java版本）]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105267574</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105267574</guid><author>idefined</author><pubDate>Sun, 10 May 2020 10:24:15 +0800</pubDate><description><![CDATA[第一题 单位变换
题目
【问题描述】
在计算机存储中，15.125GB是多少MB？
【答案提交】
这是一道结果填空的题，你只需要算出结果后提交即可。本题的结果为一个整数，在提交答案时只填写这个整数，填写多余的内容将无法得分。
思路
1G=1024M
第二题 约数个数
/*【问题描述】
1200000有多少个约数（只计算正约数）。
【答案提交】
这是一道结果填空的题，你只需要算出结果后提交即可。
本...]]></description><category></category></item><item><title><![CDATA[算法学习之路（九）—— 排序算法]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105889788</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105889788</guid><author>idefined</author><pubDate>Sun, 10 May 2020 01:18:20 +0800</pubDate><description><![CDATA[分治思想
1.分解
2.解决子问题
3.合并
1. 快速排序
双向扫描分区法



]]></description><category></category></item><item><title><![CDATA[C++提高编程]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105970148</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105970148</guid><author>idefined</author><pubDate>Thu, 07 May 2020 12:32:58 +0800</pubDate><description><![CDATA[C++提高编程

本阶段主要针对C++泛型编程和STL技术做详细讲解，探讨C++更深层的使用

1 模板
1.1 模板的概念
模板就是建立通用的模具，大大提高复用性
例如生活中的模板
一寸照片模板：
[图片(img-TbE7UCPw-1588825921116)(assets/1547105026929.png)]
PPT模板：
[图片(img-wOf1XJPG-1588825921119)(as...]]></description><category></category></item><item><title><![CDATA[C++核心编程]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105970114</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105970114</guid><author>idefined</author><pubDate>Thu, 07 May 2020 12:31:00 +0800</pubDate><description><![CDATA[C++核心编程
本阶段主要针对C++面向对象编程技术做详细讲解，探讨C++中的核心和精髓。
1 内存分区模型
C++程序在执行时，将内存大方向划分为4个区域

代码区：存放函数体的二进制代码，由操作系统进行管理的
全局区：存放全局变量和静态变量以及常量
栈区：由编译器自动分配释放, 存放函数的参数值,局部变量等
堆区：由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收

内存四区意义：
...]]></description><category></category></item><item><title><![CDATA[C++基础入门]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105969986</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105969986</guid><author>idefined</author><pubDate>Thu, 07 May 2020 12:27:56 +0800</pubDate><description><![CDATA[C++基础入门
1 C++初识
1.1  第一个C++程序
编写一个C++程序总共分为4个步骤

创建项目
创建文件
编写代码
运行程序

1.1.1 创建项目
​	Visual Studio是我们用来编写C++程序的主要工具，我们先将它打开
[图片(img-eXA5anYc-1588824991726)(assets/1541383178746.png)]
[图片(img-GqwXl7LA-15...]]></description><category></category></item><item><title><![CDATA[C++课程安排]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105969938</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105969938</guid><author>idefined</author><pubDate>Thu, 07 May 2020 12:16:09 +0800</pubDate><description><![CDATA[C++课程安排

明确C++课程学习阶段以及课程内容





阶段
内容
目标
案例




第一阶段
C++基础语法入门
对C++有初步了解，能够有基础编程能力
通讯录管理系统


第二阶段
C++核心编程
介绍C++面向对象编程，为大型项目做铺垫
职工管理系统


第三阶段
C++提高编程
介绍C++泛型编程思想，以及STL的基本使用
演讲比赛系统



综合大案例：机房预约系


...]]></description><category></category></item><item><title><![CDATA[算法学习之路（八）—— 算法时间复杂度分析]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105889757</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105889757</guid><author>idefined</author><pubDate>Sat, 02 May 2020 13:48:51 +0800</pubDate><description><![CDATA[T(n) = 2T(n-1) + O(1)  ,那么时间复杂度就是O(2^n)


T(n) = T(n-1)+T(n-2)+O(1) ,那么时间复杂度就是O(2^n)


若规模n没1次减为原来规模的一半，那么时间复杂度为O(lgn)，没2次减半，则为O(2lgn) …以此类推


T(n) = T(n-1) + O(1)  ,那么时间复杂度就是O(n)


...]]></description><category></category></item><item><title><![CDATA[算法学习之路（七）——算法基础]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105876904</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105876904</guid><author>idefined</author><pubDate>Sat, 02 May 2020 13:43:56 +0800</pubDate><description><![CDATA[数组求和（练习递归）
方法一：
import java.util.*;

class Main {
    static int f(int[] a, int begin, int end) {
        if (begin &gt;= end) return 0;
        int x = f(a, begin + 1, end);
        return x + a[begi...]]></description><category></category></item><item><title><![CDATA[算法学习之路（六）——位操作]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105876413</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105876413</guid><author>idefined</author><pubDate>Fri, 01 May 2020 13:01:04 +0800</pubDate><description><![CDATA[位操作（Bit Manipulation）是程序设计中对位模式或二进制数的一元和二元操作。在许多古老的微处理器上，位运算比加减运算略快，通常位运算比乘除法运算要快很多。在现代架构中，情况并非如此：位运算的运算速度通常与加法运算相同（仍然快于乘法运算）。
位操作包括：
¬¬ 取反（NOT）~
∩∩ 按位或（OR）  |
⊕⊕ 按位异或（XOR）         ^
∪∪ 按位与（AND） &amp;...]]></description><category></category></item><item><title><![CDATA[算法学习之路（五）——IO类的总结]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105867405</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105867405</guid><author>idefined</author><pubDate>Thu, 30 Apr 2020 19:45:48 +0800</pubDate><description><![CDATA[之前内容：
算法学习之路（一）—— File
算法学习之路（二）—— 字节
算法学习之路（三）——字符
算法学习之路（四）——缓冲区
1. 总结：

1.InputStream、OutputStream

处理字节流的抽象类
InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.
OutputStream是字节输出流的所有类的超类,一般我们使...]]></description><category></category></item><item><title><![CDATA[算法学习之路（四）——缓冲区]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105852994</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105852994</guid><author>idefined</author><pubDate>Thu, 30 Apr 2020 18:29:34 +0800</pubDate><description><![CDATA[之前内容：
算法学习之路（一）—— File
算法学习之路（二）—— 字节
算法学习之路（三）——字符
1. 字节缓冲区
1.1 字节缓冲输出流
BufferedOutputStream


1.2 字节缓冲输入流
BufferedInputStream


2. 字符
字符缓冲输出流
BufferedIWriter


字符缓冲输出流
BufferedIReader



...]]></description><category></category></item><item><title><![CDATA[算法学习之路（三）——字符]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105852963</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105852963</guid><author>idefined</author><pubDate>Thu, 30 Apr 2020 01:59:49 +0800</pubDate><description><![CDATA[之前内容：
算法学习之路（一）—— File
算法学习之路（二）—— 字节
1. 字符输出流
Writer

import java.io.*;

public class Main {

    public static void main(String[] args) throws Exception {
        String path  ="D:\\java\\git\\repos...]]></description><category></category></item><item><title><![CDATA[算法学习之路（二）—— 字节]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105852839</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105852839</guid><author>idefined</author><pubDate>Thu, 30 Apr 2020 01:40:37 +0800</pubDate><description><![CDATA[之前内容：
算法学习之路（一）—— File
先说： Output是往文件里写
Input是读取文件
1. 字节

字节输出流
OutputStream


public class Main {

    public static void main(String[] args) throws Exception {
        OutputStream os = new FileOutp...]]></description><category></category></item><item><title><![CDATA[算法学习之路（一）—— File]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105851944</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105851944</guid><author>idefined</author><pubDate>Thu, 30 Apr 2020 00:52:24 +0800</pubDate><description><![CDATA[这是用于记录我学习算法过程中产生的代码。
1. File


windows的文件路径分隔符为分号 “ ; ” ，linux的文件路径分隔符为冒号“ ：”


windows的文件名称分隔符为反斜杠 “ \” ，linux的文件路径分隔符为正斜杠“ / ”
 在编程的时候，有无反斜杠是一个转义字符，
 所以要使用2个\\ 代表一个普通的 \



File的静态成员变量


		File.path...]]></description><category></category></item><item><title><![CDATA[这一整套题下来，还怕面试？]]></title><link>https://blog.youkuaiyun.com/idefined/article/details/105827346</link><guid>https://blog.youkuaiyun.com/idefined/article/details/105827346</guid><author>idefined</author><pubDate>Tue, 28 Apr 2020 23:16:13 +0800</pubDate><description><![CDATA[一整套题下来，还怕面试？
上链接：https://www.educative.io/courses/grokking-the-coding-interview?aff=K7qB
我自己也补充了一些比较重要的模式和经典算法，自行按类型找题，后期会再更新
下面我们就来看看的分类及每个类型的经典题目：
1. Introduction
  大概就是说这是帮助你进入顶级公司的一套课程，学习之前，
  需要具...]]></description><category></category></item></channel></rss>