<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[drunkwhisky的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/drunkwhisky</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; drunkwhisky]]></copyright><item><title><![CDATA[LeetCode分类习题-查找]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/108230586</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/108230586</guid><author>drunkwhisky</author><pubDate>Tue, 25 Aug 2020 22:53:48 +0800</pubDate><description><![CDATA[查找
1. 查找表
这一部分主要考察各种数据结构的使用：

Set：元素互不重复，且只需要元素的值本身
HashMap：需要键值对存储，键不重复，无序
TreeMap：键值对存储，默认按键排序，也可自定义Comparator&lt; E &gt;
PriorityQueue：优先队列，用于无序输入、有序输出，例如任务调度场景，根据重要度返回队首

1.1 两个数组的交集（一）
重复结果只需要输出一次，因此只需要两个Set取交集
class Solution {
    public int[] inters]]></description><category></category></item><item><title><![CDATA[LeetCode分类习题-动态规划]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/108170385</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/108170385</guid><author>drunkwhisky</author><pubDate>Sat, 22 Aug 2020 16:26:14 +0800</pubDate><description><![CDATA[动态规划
可以利用动态规划解决的问题有这样一种特点：总问题可分解为子问题，而每一步子问题都依赖于前一步或前几步的结果。动态规划的求解速度相对于朴素解法更快，因为子问题的结果已经被记录，后面需要的时候直接调用即可。
动态规划的步骤：

确定状态代表什么（dp[i]或dp[i] [j]都代表啥）;
状态如何转移的（dp[i] 和dp[i - 1] 或dp[i - k]之间的关系），一开始可以先枚举尝试，如果特别麻烦建议回到步骤1重新定义状态；
确定边界条件（dp[0]或dp[0] [0]都是啥）；
确定输出是什]]></description><category></category></item><item><title><![CDATA[LeetCode分类习题-分治]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/108111039</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/108111039</guid><author>drunkwhisky</author><pubDate>Wed, 19 Aug 2020 21:22:35 +0800</pubDate><description><![CDATA[分治算法
1.多数元素
此题思路非常多，主要介绍分治思想的应用和常见其他解法。
1.1 分治法
求原数组的众数可以转化成求各子数组的众数，最后将子数组的结果合并为原数组结果。这就涉及两个问题：
a）递归头。当子数组只有一个元素时，众数即为该元素。
b）合并规则。
class Solution {
    public int majorityElement(int[] nums) {
        return getMajority(nums, 0, nums.length - 1);

    }

]]></description><category></category></item><item><title><![CDATA[MapReduce原理及源码浅析（二）]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/95376953</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/95376953</guid><author>drunkwhisky</author><pubDate>Fri, 12 Jul 2019 23:41:26 +0800</pubDate><description><![CDATA[MapReduce原理及源码浅析（二）
回顾：
上一篇文章我们讨论了客户端提交MapReduce作业时是如何创建split清单以及MapTask如何读取split中的记录的。获取split实际上调用了FileInputFormat的getSplits()方法，split有四个重要的参数：

Path
offset
length
hosts和cachedhosts

split中的记录向map环节写...]]></description><category></category></item><item><title><![CDATA[MapReduce原理及源码浅析（一）]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/95056917</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/95056917</guid><author>drunkwhisky</author><pubDate>Mon, 08 Jul 2019 21:21:58 +0800</pubDate><description><![CDATA[官网介绍
是否依赖Hadoop
整个计算流程，自己画图
client
maptask
reducetask
split信息
拼接
combine
读取键值对输出
MapReduce原理及源码浅析
MapReduce是ASF推出的大数据开源计算框架，虽然如今的开发过程中已经很少直接编写MR程序，但是MR仍然是大数据计算的灵魂思想，这篇文章主要分析MapReduce计算层面（先不管Yarn层）的原理。...]]></description><category></category></item><item><title><![CDATA[python爬虫（二）]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/90177832</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/90177832</guid><author>drunkwhisky</author><pubDate>Mon, 13 May 2019 17:48:28 +0800</pubDate><description><![CDATA[python爬虫（二）
2.1 Beautiful Soup
Beautiful Soup 是一个可以从HTML和XML文件中提取数据的python库，它可以使用用户喜欢的转换器实现惯用的文档导航，修改，定位等功能。
由于使用的编译环境是python3，安装bs4时，注意使用pip3命令
bs有几种解析器，按照不同的需求选择使用：

Tag对象
bs中有几种对象，本次任务主要用到了Tag对象。Ta...]]></description><category></category></item><item><title><![CDATA[python爬虫（一）]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/90142314</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/90142314</guid><author>drunkwhisky</author><pubDate>Sun, 12 May 2019 16:59:08 +0800</pubDate><description><![CDATA[python网络爬虫（一）
1.get与post请求
关于HTTP
超文本传输协议（HTTP）目的是保证客户端与服务器端的通信，其作用就是实现客户端与服务器的请求-应答。
Get与Post
Get和Post是HTTP最常用的两种方法（除此之外还有HEAD,PUT,DELETE等）

Get：从指定的资源请求数据
Post：向指定的资源提交要处理的数据

两种请求都可以用requests包中的get...]]></description><category></category></item><item><title><![CDATA[Hadoop配置]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/89816931</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/89816931</guid><author>drunkwhisky</author><pubDate>Sat, 04 May 2019 19:43:52 +0800</pubDate><description><![CDATA[ifconfig 查看网卡名称


vim /etc/sysconfig/network-scripts/ifcfg-ens33(要看ifconfig命令显示的网卡名称)
设置master的IP地址（与主机在同一网段内）和子网掩码


vim /etc/sysconfig/network（设置网关）


hostnamectl set-hostname master
更改本机名称为master...]]></description><category></category></item><item><title><![CDATA[MySQL笔记（一）]]></title><link>https://blog.youkuaiyun.com/drunkwhisky/article/details/88981400</link><guid>https://blog.youkuaiyun.com/drunkwhisky/article/details/88981400</guid><author>drunkwhisky</author><pubDate>Tue, 02 Apr 2019 21:09:23 +0800</pubDate><description><![CDATA[MySQL笔记
基本概念

数据库定义
保存有组织的数据的容器
关系型数据库
二维表格模型
列（字段）
行（记录）
主键

本质：一列
作用：能够唯一标识每一行
要求：任意两行主键值不同；每行都必须具有主键值（且非null）
习惯：不更新、不重用、值不变



检索数据
选择数据库
USE DATABASE;
SHOW DATABASES;
SHOW TABLES;
SHOW COLUMNS FR...]]></description><category></category></item></channel></rss>