- 博客(21)
- 收藏
- 关注
原创 leetcode刷题记录
【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解】 https://www.bilibili.com/video/BV13g41157hK/?主要还是每次看视频效率较高,所以根据左神教程,进行针对性速刷,后期进行代码和笔记整理。有看到还有一个直接自己刷的。
2023-10-21 20:29:30 160
原创 线性表之顺序表的c++代码
在我们的函数实现上参数,全部是位序,在别人使用函数的时候全是使用的是该数组的实际第几位,而类里面的length, maxlength当前长度和最大长度也是位序,而到了L[]数组上的时候就全是位序-1了。线性表由于物理存储方式的不同有两种:顺序表和链表。我的这个数组是要是超过了其当前的最大存储量,就自动扩大容量,但是我初始化的时候又专门设置了一个最大容量,很奇怪总觉得逻辑有点冲突。2、线性表就是线性的连续的,所以不存在有 数组第1~10位的数据,要插入一个第100位的数据,只能最大插入到到11位。
2022-10-26 20:23:08 888 1
原创 堆排序的c++代码实现
堆排序的c++代码实现,建立大根堆,然后每次利用大根堆的第一个数(最大)和最后一个叶节点交换,然后将这个叶节点从树中删去(因为已经排到了他该在位置,就是当前的还没有排序好的最大值,放在最末尾),然后利用保持大根堆特性,将头沉沉沉沉到他该在的位置,不断循环。基于大根堆的堆排序就是得到递增序列,机遇小根堆的堆排序得到就是递减序列。堆排序,主要分成两步,第一步就是大根堆的建立,第二步就是不断找出最大值(体现了选择排序,为选择空间复杂度:o(1)时间复杂度:o(nlogn)上面有写,不稳定数组可实现
2022-10-22 17:45:11 1553
原创 插入排序相关例题以及C++代码实现
c++交换排序代码:冒泡排序相关,双向冒泡排序,正反交替冒泡。快速排序相关1、将枢轴值从第一位改成随机位。特别的快排想法应用,有两种特殊的数组在利用快排的每轮左右交换的思想能够很方便的实现:1、只有两种数字 0000011111想让0全在1前面,因为只有两种数字,在一个数通过一轮交换后,就所有数据就排好了,所以总的时间复杂度o(n)2、有三种数字 000001111122222 让0在1前面,1在2前面如何排,同样类似的思路具体看题看下面思路
2022-10-22 11:40:44 480
原创 快速排序的c++代码实现
头文件是快速排序的代码,mian函数是一个测试样例。关于时间和空间复杂度:时间复杂度与空间复杂度都与递归深度有关,递归深度最好就是二叉树(o(logn)),最坏就是每次都是最边边上的情况(顺序的情况,无论顺序还是逆序都是需要)o(n)的时间。空间复杂度:最好:o(logn), 最坏:o(n)。时间复杂度:最好:o(nlogn),每次递归都是能够选择到能够排到中间的值。最坏:o(n^2),顺序逆序稳定性:不稳定。适用于:数组可实现,链表不太行,因为有往前往后找,以及取左取右
2022-10-20 15:03:10 1015
原创 冒泡排序的c++代码实现
头文件是冒泡排序的代码,mian函数是一个测试样例,关于时间和空间复杂度:空间复杂度:o(1) 常数个辅助单元,时间复杂度:最好:o(n),当序列已经是已经排好序的情况下(顺序)(只需要从后往前访问一轮flag是false就提前return),要是为逆序不满足,且为最坏:o(n^2),逆序,平均:o(n^2),稳定性:稳定,适用于:数组和链表都可实现
2022-10-18 20:17:34 1810
原创 希尔排序的c++代码实现
头文件是希尔排序的代码,mian函数是一个测试样例。时间复杂度:依赖于增量序列的函数的情况,最优:o(n^1.3)这个数学上还没有证明,在特定范围能够达到这个数,最坏+平均:o(n^2),就是当希尔最开始就是n/n=1的情况其实就退化成了插入排序,所以o(n^2)1、在希尔里面 虽然data[0]是用来临时存储变量的,但是不是哨兵,因为j-d这个不一定就能到0这个位置去,所以还是需要每次判断j是否还>0,不需要含0因为只是一块费空2、哈希是先间隔n/2一组(也可以是其他的n/3...),然后是间隔n/
2022-10-16 19:10:46 765
原创 插入排序的c++代码实现
关于时间和空间复杂度:无哨兵,no二分查找:时间复杂度:最优:o(n)就直接不用去查找以及移动了,最坏+平均:o(n^2),空间复杂度:o(1) 只有一个key,有哨兵,no二分查找:时间复杂度:最优:o(n)就直接不用去查找以及移动了,最坏+平均:o(n^2) 只是比无哨兵查找每次少个条件,空间复杂度:o(1) 可能就i,j。有哨兵,采用二分查找:时间复杂度:最优:o(n)就直接不用去查找以及移动了,最坏+平均:o(n^2) 虽然查找变成了logn,但是每次还是需要把从low到i-1的位置全部移动一次,和
2022-10-16 17:22:02 1853
原创 数据结构刷题记录
后面就是笔记和代码的整理,大佬用的是java,后续我应该会用c++整理出来。主要是发现在笔试的很多题还是不会,所以该做的该刷的还是需要去刷。开一个数据结构和算法 leetcode的刷题记录。
2022-10-14 08:31:38 267
转载 C++ new/delect malloc/free区别
由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。由于内部数据类型的“对象”没有构造与析构的过程,对它们而言malloc/free和new/delete是等价的。2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数。示例用malloc/free和new/delete如何实现对象的动态内存管理。
2022-10-03 17:34:06 226
原创 2022美赛C题 F奖思路分享
2022美赛C题 F奖思路分享首先利用基于长短期记忆(LSTM)和随机森林的组合模型对黄金比特币收盘价进行实时的短期预测,之后利用投资组合策略来确定每日货币的买入卖出持有比例。再是利用随机因素进行最优规划,确定该策略的最优性,最后进行灵敏度分析。最终确定策略为最优策略并且模型具有一定的鲁棒性。
2022-09-21 17:31:53 3174
原创 游戏数分笔试1
游戏公司数据分析的笔试题4、mmo,15职业 3v3,如何评价职业的平衡性。5、5间装备,开箱概率相同,要获齐的平均开箱次数。这次时间安排极其差劲,后面完全没有时间写太可惜了。1、熟悉的5款游戏,时长水平,简要评价。6、喜好的特长技能,对职业的帮助。2、其中一款,最喜欢的点,评价。8、分析同比(月环比,年环比)3、估计该游戏的玩家平均年龄。7、到现在人生最重要的决定。
2022-09-16 00:58:42 740
原创 Python 函数部分
然而,使用并非自己编写的大型模块时,最好不要采用这种导入方法,因为如果模块中有函数的名称与你的项目中使用的名称相同,可能导致意想不到的结果:Python可能遇到多个名称相同的函数或变量,进而覆盖函数,而不是分别导入所有的函数。形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所有名称—值对都封装到这个字典中,调用这个函数时,不管额外提供了多少个键—值对,都能正确地处理。函数的名称可能因与程序中现有的名称冲突,或者名称太长,可指定简短而独一无二的别名。
2022-09-07 19:17:34 590
原创 Python if判断+字典+用户输入输出+while循环
Python不关心键-值对的添加顺序,而只关心键和值之间的关联关系。keys()直接返回一个列表,其中包含字典中的所有键,当然在用keys的时候也可以省去,系统默认访问所有键值,但是最好加上方便理解。字典里面键值嵌套列表,就可以使得键对应的值有多个,而且循环列表也很方便,不像字典+字典还需要再整成列表才好输出,而且即使只有一个不是一个列表也可以这么输出。这个嵌套有一个很好的地方在于,list是讲究顺序的,所以对于alien0,alien1...之类的来说排序是有顺序的,而每个alien的属性是没有顺序的。.
2022-08-28 10:21:34 1011
原创 Python的列表与操作
squares[:]和squares是不一样的,squares[:]是副本,不是squares本身,要是一个变量=squares,那么squares变则这个变量就会变,变量=squares[:]副本则不会。squares[m:n]引用从m到n-1这些数据,squares[:n]从0位开始到n-1,squares[m:]从m位开始到最后,还有这种的squares[-3:]从倒数第三位到最后。通过查看列表或其包含的元素。用(),但是引用里面的元素还是用[],不可以修改,但是可以让变量直接重新赋值新的元组。
2022-08-23 22:00:58 549
原创 Python基础,以及jupyter相关操作
注意的是print(a,b)这种a、b之间输出是会有一个空格的,只有print(a+b)这种才没有空格!在命令行模式(Esc)下,可以改变该单元格的属性:代码块(Y),markdown(M,有点像文本)title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写,后面的字母都是小写。1.3、命令行模式(Esc)下,A在该单元格上面新增一个单元格,B在下面增加单元格。加(+)减(-)乘(*)除(/)运算,两个乘号表示乘方运算,浮点数一样通用。变量名可以字母或下划线打头。\n换行 \t制表符。
2022-08-23 13:38:40 1283
原创 MYSQL基础操作 查询部分
having的表达式和where的表达式基本相同,但是having的表达式中可以使用聚合函数,where的表达式中不可以,因为where是对原表的行数据筛选,having是对group by分组后的数据筛选。计算表的总行数,对于这种count(*)是最快的,而count某个字段那就不快了,且count(字段)时,空值的行是不计数的。2、GROUP BY后面跟多个字段对结果的影响,我认为最后结果没有影响,所有的分组结果与顺序无关,只有这两个字段对应的都是相同才分为一组。Not in则是除去那些的()
2022-08-22 16:23:24 3351
原创 EXCEL中数据分析涉及的一些操作
这种相对于前面那个的区别在于,在数据中有一个例子(一个商家)出现多次时,前面那个直接找match只会找到数据中这个商家第一个出现的值,对于这个商家的基础属性的查找显示(名称、代号,id)这些时数据中商家出现几次不影响,但是对于算出商家总的赚的金额、总的进店人数这些时,自然不能只用第一次出现的金额来计算,需要算出总的,这个时候就还是得用sumifs来看,此时的match主要作用就是让行的名称(指标属性)找出其在数据的列位置了(还是方便多加几个指标的时候直接拉),所有的这家商家出现情况还是得靠sumifs。
2022-08-20 16:36:16 402
原创 数据分析自己看法
流程拆解法、二分法、象限拆解法、杜邦分析法、AARRR、pest、rfm、swot、5w1h(拆解只要符合mece法则即可)—采集数据:API (应用程序接口:按照我们的规则提供什么样的数据)API 平台文档、用API 获取数据,利用代码)—实验目标、实验假设、实验打分、实验指标、实验观众、实验版本、开发验收、实验结果、实验分析、后续计划。—储存数据:各类类型的数据库-hive、mysql、presto、impala(数据工程师)新增数据的过程:埋点(获取数据的方式,最可控最可靠的方式)
2022-08-17 21:50:50 716
python基础用法4 .ipynb 下载jupyter直接看
2023-01-28
python基础用法5 .ipynb 下载jupyter直接看
2023-01-27
python基础用法3 .ipynb 下载jupyter直接看
2023-01-27
python基础用法2 .ipynb 下载jupyter直接看
2023-01-27
python基础用法1 .ipynb 下载jupyter直接看
2023-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人