- 博客(124)
- 资源 (1)
- 收藏
- 关注
原创 排序算法-堆排序
堆在形式上是一棵完全二叉树(假设树的高度是h,所有的叶子结点都是在第h层或h-1层)堆分为两类,大根堆和小根堆:大根堆:每个结点的值都大于等于其孩子结点的值;小根堆:每个结点的值都小于等于其孩子结点的值;堆在形式上是一棵完全二叉树,用数组存储它,不会浪费空间;。
2024-08-29 02:46:58
120
原创 python可视化-饼图
饼图是一个将整体划分为几个扇形的圆形统计图表,用于描述数量、频率或百分比之间的相对关系。饼形图适合用来快速展示数据比例分布,但不利于展示较多项目。饼图也因过于关注不同部分彼此或相对于整体的大小关系,导致与其他饼形图作整体比较时不能显示出任何变化而饱受诟病。
2024-08-28 00:23:12
75
原创 python可视化-雷达图
雷达图可以用来比较多个定量变量,也可以用于查看数据集中变量的得分高低,是显示性能表现的理想之选。缺点是变量过多容易造成阅读困难。
2024-08-28 00:10:13
87
原创 python可视化-散点图
散点图可以了解数据之间的各种相关性,如正比、反比、无相关、线性、指数级、 U形等,而且也可以通过数据点的密度(辅助拟合趋势线)来确定相关性的强度。另外,也可以探索出异常值(在远超出一般聚集区域的数据点称)。
2024-08-27 23:04:02
326
原创 特征工程-数据处理
实现方式1: 手动 df['data'].map({'one year': 1, 'two year':2})1、数值缩放:标准化、归一化、L1/L2正则化、robust_scale、取对数log、softmax等。对于连续变量是否存在其他值表示缺失值的情况,可以先转化为数值变量再进行分析,例如如果是用空格代表缺失值。实现方式1:pandas.factorize(df['country'])[0]缺失值处理方法:删除、均值、中位数、众数、特殊值、随机值填充等。连续变量和离散变量之间相关性则可以卡方检验;
2024-08-27 18:29:49
369
原创 Hive SQL
tinyint 1byte 有符号整数smallint 2byte 有符号整数int 4byte 有符号整数bigint 8byte 有符号整数boolean 布尔类型,true或者falsefloat 单精度浮点数double 双精度浮点数decimal 十进制精准数字类型 decimal(16,2)
2024-08-26 23:38:02
1076
原创 猫狗识别
数据集cat图片12500张,dog图片12500张,数据集格式如下:效果input_data.pyimport osimport tensorflow as tffrom PIL import Imageimport matplotlib.pyplot as pltimport numpy as npimport cv2def get_files(file_dir): # file_dir: 文件夹路径...
2021-05-27 14:18:54
278
原创 106. 从中序与后序遍历序列构造二叉树(中等)
106. 从中序与后序遍历序列构造二叉树(中等)根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解题思路:递归为了高效查找根节点元素在中序遍历数组中的下标,我们选择创建哈希表来存储中序序列,即建立一个(元素...
2021-04-15 14:30:39
147
原创 KNN
KNN模型(一)KNN算法1.工作原理假设有一个带有标签的样本数据集(训练样本集),其中包含每条数据与所属分类的对应关系。 输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较。 计算新数据与样本数据集中每条数据的距离。 对求得的所有距离进行排序(从小到大,越小表示越相似)。 取前 k (k 一般小于等于 20 )个样本数据对应的分类标签。 求 k 个数据中出现次数最多的分类标签作为新数据的分类。给定一个训练数据集,对新的输入实例,在训练数据集中找到与
2021-04-15 14:29:55
207
原创 2021-8
DP5. 最长回文子串(中等)给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"方法:DP用P(i,j) 表示字符串s的第i到j个字母组成的串(s[i:j])是否为回文串:动态规划的状态转移方程:也就是说,只有s[i+1:j-1]是回文串,并...
2021-04-14 18:24:46
117
原创 2021-6
1247. 交换字符使得字符串相同(中等)有两个长度相同的字符串s1和s2,且它们其中只含有字符"x"和"y",你需要通过「交换字符」的方式使这两个字符串相同。每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。交换只能发生在两个不同的字符串之间,绝对不能发生在同一个字符串内部。也就是说,我们可以交换s1[i]和s2[j],但不能交换s1[i]和s1[j]。最后,请你返回使s1和s2相同的最小交换次数,如果没有方法能够使得这两个字符串相同,...
2021-04-14 18:20:52
694
原创 2021-5
227. 基本计算器 II(中等)实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+,-,*,/四种运算符和空格。 整数除法仅保留整数部分。示例1:输入: "3+2*2"输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。 请不要使用内置的库函数eval。方法:栈classSolution:def...
2021-04-14 18:19:29
97
原创 2021-4
前缀和 & HASH560. 和为K的子数组(中等)给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数k的范围是[-1e7, 1e7]。方法:前缀和+哈希表思路和算法定义 pre[i] 为 [0.....
2021-04-14 18:18:01
231
原创 2021-3
3. 无重复字符的最长子串(中等)给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须...
2021-04-14 18:17:27
143
原创 2021-2
单调栈42. 接雨水(困难)给定n个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。感谢 Marcos贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6方法:单调递减栈用栈来跟踪可能储水的最长的条形块。使用栈就可以在一次遍历内完成计算。...
2021-04-14 18:16:19
193
原创 2021-1
目录栈... 520. 有效的括号(简单)... 532. 最长有效括号(困难)... 61209. 删除字符串中的所有相邻重复项 II(中等)... 771. 简化路径(中等)... 8150. 逆波兰表达式求值(中等)... 9单调栈... 1142. 接雨水(困难)... 1184. 柱状图中最大的矩形(困难)... 12并查集... 15滑动窗口(11道)... 15剑指 Offer 42. 连续子数组的最大和(简单)... 15209. 长度最小
2021-04-14 18:14:58
439
转载 Python中默认的排序 --- Timsort
Python中默认的排序 — TimsortTimsort是一种复杂度高的排序算法,稳定并且效率很高,是python,java等默认使用的一种排序算法。Timsort从某种意义上来说是插入排序与归并排序的结合。python中,当一个列表的长度小于等于64时,则默认使用插入排序算法逻辑,对数据进行排序,因为在数据量较小的情况下,插入排序的效率很高,比选择,快排,希尔等都高。当一个列表长度大于64时,就会结合归并和插入排序算法使用,当然,仅仅是使用他们的一部分而已。TimSort是一种稳定性排序。
2021-04-08 09:48:58
497
原创 剑指 Offer 61. 扑克牌中的顺子
剑指 Offer 61. 扑克牌中的顺子从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True示例 2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5数组的数取值为 [0, 13] .方法:集合 Set + 遍历根据题意,此 5 张牌是顺子的 充分条件 如下:(1)除大小王外,所
2021-04-06 16:46:32
89
原创 剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length <=
2021-04-06 14:53:24
72
原创 剑指 Offer 58 - I. 翻转单词顺序
剑指 Offer 58 - I. 翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符
2021-04-06 14:19:32
99
原创 剑指 Offer 53 - I. 在排序数组中查找数字 I
剑指 Offer 53 - I. 在排序数组中查找数字 I统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 50000注意:本题与主站 34 题相同(仅返回值不同):https://leetcode-cn.com/problems/find-first-and-last-p
2021-04-05 23:01:59
93
原创 剑指 Offer 54. 二叉搜索树的第k大节点
剑指 Offer 54. 二叉搜索树的第k大节点给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = [3,1,4,null,2], k = 13/ 1 42输出: 4示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 35/ 3 6/ 2 4/1输出: 4限制:1 ≤ k ≤ 二叉搜索树元素个数方法:逆中序遍历为求第 k 个节点,需要实现以下 三项工作 :(1)递归遍历时计数,统计当前节
2021-04-05 15:34:08
95
原创 剑指 Offer 68 - II. 二叉树的最近公共祖先
剑指 Offer 68 - II. 二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p =
2021-04-04 19:03:12
80
原创 剑指 Offer 55 - II. 平衡二叉树
剑指 Offer 55 - II. 平衡二叉树输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]1/ 2 2/ 3 3/ 4 4返回 false 。限制:0 <= 树的结点个数 &l
2021-04-04 16:33:24
71
原创 剑指 Offer 32 - III. 从上到下打印二叉树 III
剑指 Offer 32 - III. 从上到下打印二叉树 III请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[20,9],[15,7]]提示:节点总数 <= 1000方法:BFS# Definition for a binary t
2021-04-03 21:04:50
70
原创 剑指 Offer 32 - II. 从上到下打印二叉树 II
剑指 Offer 32 - II. 从上到下打印二叉树 II从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]提示:节点总数 <= 1000注意:本题与主站 102 题相同:https://leetcode-cn.com/problems/binary-tree-level-order
2021-04-03 20:52:07
58
原创 剑指 Offer 32 - I. 从上到下打印二叉树
剑指 Offer 32 - I. 从上到下打印二叉树从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000方法:BFS# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):#
2021-04-03 20:42:28
59
原创 剑指 Offer 28. 对称的二叉树
剑指 Offer 28. 对称的二叉树请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null
2021-04-03 20:11:03
79
原创 剑指 Offer 26. 树的子结构
剑指 Offer 26. 树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3/ \4 5/ 1 2给定的树 B:4/1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:tru
2021-04-03 19:08:14
71
原创 剑指 Offer 27. 二叉树的镜像
剑指 Offer 27. 二叉树的镜像难度简单123请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7/ \ / \1 3 6 9镜像输出: 4 / \ 7 2/ \ / \9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000...
2021-04-03 18:42:44
106
原创 剑指 Offer 35. 复杂链表的复制
剑指 Offer 35. 复杂链表的复制请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2
2021-04-02 09:56:51
195
3
原创 剑指 Offer 52. 两个链表的第一个公共节点
剑指 Offer 52. 两个链表的第一个公共节点输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为
2021-04-01 21:58:32
194
原创 剑指 Offer 25. 合并两个排序的链表
剑指 Offer 25. 合并两个排序的链表输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000注意:本题与主站 21 题相同:https://leetcode-cn.com/problems/merge-two-sorted-lists/方法1:递归递归合并两条链表,每次递归返回
2021-04-01 16:41:37
115
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人