![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
大佬喝可乐
这个作者很懒,什么都没留下…
展开
-
pearson相关性
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningsimport scipy.stats as stimport osimport rewarnings.filterwarnings('ignore')pd.set_option('display.max_rows', None)pd.set_option('display.max原创 2021-09-26 16:53:51 · 227 阅读 · 0 评论 -
异或1的好处:力扣540. 有序数组中的单一元素
如果是一个偶数^1,那么答案是偶数+1;如果是一个奇数^1,那么答案是奇数-1。1^1=02^1=33^1=24^1=55^1=4-1^1=-2-2^1=-1-3^1=-4-4^1=-3力扣给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10注意: 您的方案应该在 O(log n)时间复杂度原创 2020-09-04 10:02:50 · 161 阅读 · 0 评论 -
力扣149. 直线上最多的点数
力扣本题的方法就是查找,但是测试用例中会有很多坑[[0,0],[94911150,94911151],[94911151,94911152]];这两个不是一个点,但由于浮点数的精度问题,导致一直计算为1个斜率。处理方法:dy X 1000 / dx X 1000或者利用最简分数:9/18=3/6=1/2给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o|原创 2020-09-03 11:39:00 · 247 阅读 · 0 评论 -
查找力扣练习
力扣原创 2020-08-28 22:32:50 · 79 阅读 · 0 评论 -
查找
文章目录一.查找表考虑的基本数据结构算法应用LeetCode 349 Intersection Of Two Arrays 1题目描述分析实现LeetCode 350 Intersection Of Two Arrays 2题目描述分析实现LeetCode 242 Intersection Of Two Arrays 2题目描述分析实现LeetCode 202 Happy number题目描述分析实现tipsLeetCode 290 Word Pattern题目描述分析实现tipsLeetCode 205原创 2020-08-25 09:26:58 · 195 阅读 · 0 评论 -
动态规划力扣
动态规划动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。主要思想若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。动态规划往往用于优化递归问题,例如斐波那契数列,如果运用递归的方式来求解会重复计算很多相同的子问题,利用动态规划的思想可以减少计算量。动态规划法仅仅解决每个子问题一次,具有天然剪枝的功能,从而减少计算量,一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。原创 2020-08-22 17:25:35 · 237 阅读 · 0 评论 -
力扣4:寻找两个有序数组的中位数
来源:力扣给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5分析1、暴力解法:调包加排序合并数组原创 2020-08-19 11:13:18 · 309 阅读 · 0 评论 -
分治算法(1)
引文MapReduce(分治算法的应用) 是 Google 大数据处理的三驾马车之一,另外两个是 GFS 和 Bigtable。它在倒排索引、PageRank 计算、网页分析等搜索引擎相关的技术中都有大量的应用。尽管开发一个 MapReduce 看起来很高深,感觉遥不可及。实际上,万变不离其宗,它的本质就是分治算法思想,分治算法。如何理解分治算法?为什么说 MapRedue 的本质就是分治算法呢?1.主要思想分治算法的主要思想是将原问题分成若干个子问题,解决这些子问题再最终合并出原问题的答案。在计原创 2020-08-16 15:32:57 · 252 阅读 · 0 评论 -
文件与文件系统
1. 文件与文件系统打开文件open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) Open file and return a stream. Raise OSError upon failure.file: 必需,文件路径(相对或者绝对路径)。mode: 可选,文件打开模式buffering: 设置缓冲encoding: 一般使用utf8errors: 报原创 2020-08-09 00:06:14 · 70 阅读 · 0 评论 -
datetime模块
datetime模块datetime 是 Python 中处理日期的标准模块,它提供了 4 种对日期和时间进行处理的类:datetime、date、time 和 timedelta。1. datetime类class datetime(date): def __init__(self, year, month, day, hour, minute, second, microsecond, tzinfo) pass def now(cls, tz=None):原创 2020-08-08 10:41:05 · 173 阅读 · 0 评论 -
类与对象
类与对象1. 对象 = 属性 + 方法对象是类的实例。换句话说,类主要定义对象的结构,然后我们以类为模板创建对象。类不但包含方法定义,而且还包含所有实例共享的数据。封装:信息隐蔽技术我们可以使用关键字 class 定义 Python 类,关键字后面紧跟类的名称、分号和类的实现。【例子】class Turtle: # Python中的类名约定以大写字母开头 """关于类的一个简单例子""" # 属性 color = 'green' weight = 10原创 2020-08-05 22:32:35 · 98 阅读 · 0 评论 -
函数与Lambda表达式
函数文档def MyFirstFunction(name): "函数定义过程中name是形参" # 因为Ta只是一个形式,表示占据一个参数位置 print('传递进来的{0}叫做实参,因为Ta是具体的参数值!'.format(name))MyFirstFunction('老马的程序人生') # 传递进来的老马的程序人生叫做实参,因为Ta是具体的参数值!print(MyFirstFunction.__doc__) # 函数定义过程中name是形参help(MyF原创 2020-08-03 11:45:57 · 199 阅读 · 0 评论 -
集合
集合python 中set与dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。注意,key为不可变类型,即可哈希的值。【例子】num = {}print(type(num)) # <class 'dict'>num = {1, 2, 3, 4}print(type(num)) # <class 'set'>1. 集合的创建先创建对象再加入元素。在创建空集合的时候只能使用s = set(),原创 2020-07-31 23:17:28 · 93 阅读 · 0 评论 -
字典
字典1. 可变类型与不可变类型序列是以连续的整数为索引,与此不同的是,字典以"关键字"为索引,关键字可以是任意不可变类型,通常用字符串或数值。字典是 Python 唯一的一个 映射类型,字符串、元组、列表属于序列类型。那么如何快速判断一个数据类型 X 是不是可变类型的呢?两种方法:麻烦方法:用 id(X) 函数,对 X 进行某种操作,比较操作前后的 id,如果不一样,则 X 不可变,如果一样,则 X 可变。便捷方法:用 hash(X),只要不报错,证明 X 可被哈希,即不可变,反过来不可被原创 2020-07-31 23:03:54 · 172 阅读 · 0 评论 -
列表元组字符串:力扣852
列表简单数据类型整型<class 'int'>浮点型<class 'float'>布尔型<class 'bool'>容器数据类型列表<class 'list'>元组<class 'tuple'>字典<class 'dict'>集合<class 'set'>字符串<class 'str'>x = [a] * 4操作中,只是创建4个指向list的引用,所以一旦a改变,x中4个a也会随之改原创 2020-07-28 23:55:14 · 234 阅读 · 0 评论 -
程序异常处理
异常处理异常就是运行期检测到的错误。计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。1. Python 标准异常总结BaseException:所有异常的 基类Exception:常规异常的 基类StandardError:所有的内建标准异常的基类ArithmeticError:所有数值计算异常的基类FloatingPointError:浮点计算异常OverflowError:数值运算超出最大限制ZeroDivision原创 2020-07-25 23:10:03 · 397 阅读 · 0 评论 -
条件循环语句、最小公倍数
1. assert 关键词当进行数据挖掘的EDA时候经常会用到,判断当前的Dataframe是否正确,以免影响到后续模型训练。assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。为True对时候就会继续执行。【例子】my_list = ['lsgogroup']my_list.pop(0)assert len(my_list) > 0# AssertionError在进行单元测试时,可以用原创 2020-07-23 23:04:03 · 521 阅读 · 0 评论 -
力扣136、137、260以及取模、位运算
python取模所谓取模运算,就是计算两个数相除之后的余数,符号是%。如a % b就是计算a除以b的余数。用数学语言来描述,就是如果存在整数n和m,其中0 <= m < b,使得a = n * b + m,那么a % b = a - n * b = m.在MATLAB中为mod;取模运算的两个操作数都必须是整数,可以是负整数,但是b不可以是0.当a和b中存在负整数时,先放python运行的结果print(7 % 3,3 % 7)print(-7 % 3,-3 % 7)print(7原创 2020-07-22 00:50:04 · 464 阅读 · 0 评论 -
leetcode 1300. 转变数组后最接近目标值的数组和
题目给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。来源:力扣(LeetCode)题解方法一:枚举 + 二分查找思路和算法由于数组 arr 中每个元素值的范围是 [1,10^5][1,105],在可以直接枚举原创 2020-06-15 09:53:54 · 198 阅读 · 0 评论