自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 代码随想录 day34

你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。假设totalsum=0,那么走一圈油量和消耗抵消下来就为0(先不管油够不够走到每一站),假设从起点到第i点油量不够消耗,那么从i点继续走回起点油量就肯定大于消耗,因为总油量和消耗相等。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。排序,注意要按照绝对值的大小。

2024-04-08 23:13:56 793

原创 代码随想录 day25

组合问题考虑回溯,用map定义字典和对应字母之间的映射,这里因为数较少使用的是数组,用map也可以,其余的和组合差别不大。说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。和组合相同,稍微改变了恢复现场和判断结束的方法。17.电话号码的字母组合。也可以传引用不用全局变量。

2024-04-07 20:55:15 234

原创 代码随想录 day24 回溯算法

示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]给定两个整数 n 和 k,返回 1 …n 中所有可能的 k 个数的组合。回溯算法主要使用dfs。

2024-04-07 20:24:40 313

原创 代码随想录 day30

维护能到达的范围,在能到达的范围里用max(i+nums[i],maxfar)就是能到达的范围,如果最后能到达最后就说明可以,否则不行。和跳跃游戏1类似,维护最大跳跃范围,但是要同时维护这个范围是由几次跳跃得到的,枚举跳跃次数直到到达终点。给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。你的目标是使用最少的跳跃次数到达数组的最后一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。数组中的每个元素代表你在该位置可以跳跃的最大长度。说明: 假设你总是可以到达数组的最后一个位置。

2024-04-07 20:04:54 465

原创 代码随想录训练营第二天

定义区间时要明确是左闭右开还是全闭,要明确区间定义才方便做题,双指针和滑动窗口在数组里很常用。

2024-03-07 23:01:43 806

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

lower_bound(begin,end,num) :在一个已经排好序的容器里返回第一个大于等于num的迭代器,如果没有返回end的迭代器,可以在后面加自定义的比较函数作为参数。upper_bound(begin,end,num)在一个已经排好序的容器里返回第一个大于等于num的迭代器,如果没有返回end的迭代器,可以在后面加自定义的比较函数作为参数。快慢指针,数组里的常见方法需要从数组里去除元素时常用。二分查找,重点是明确区间定义是左闭右开还是左开右闭。如果不是要实现二分查找可以用。

2024-03-05 22:58:13 995

原创 lowbit

返回一个2进制数,最高位是1剩下的是0,表示x的最后一个1的位置。

2024-03-05 22:21:16 370

原创 零一背包和完全背包问题

完全背包问题和零一背包问题

2024-02-26 09:28:30 1786 1

原创 scala和c++Vector区别

C++ 中的类似于动态数组,适合于需要高效随机访问和在末尾快速插入或删除的场景。Scala 中的Vector是基于树实现的所以随机读取会慢一点但是接近常数复杂度,一个不可变的集合,优化了在任意位置的插入和删除操作,适用于需要不可变性和在集合任意位置进行操作的场景。这两种 Vector 的选择取决于你的具体应用需求和对性能的不同考虑。

2023-12-10 11:43:08 67

原创 数据分析学习 day1

如果您有一个包含英文列名和对应中文列名的外部文件(如CSV或Excel),您可以从该文件读取映射,并使用它来重命名列名。不过,需要注意的是,当数据集非常大时,直接查看全部数据可能不太实际。:如果文件或数据流中的某个部分损坏或出现错误,逐块读取可能允许程序跳过损坏的部分,并继续处理其他有效的块。:对于需要与用户交互的应用程序,逐块处理可以在加载更多数据的同时,展示已经读取的数据,增强用户体验。:直接查看数据可能会提供一些关于数据趋势和模式的线索,这在进一步的统计或可视化分析之前是很有价值的。

2023-10-24 17:24:19 64

原创 二叉树的建立和相关题目

可以表示为(1<<n)这样可能会更快一点(n为正整数),第i个叶节点标号为。可以存每个标号的左右节根节点为1,也可以用val加两个指向左右子树的指针。指除最后一层外全部是有两个子节点的树,并且最后一层叶节点是满的。-1的树(即高度为n有n层的树),我们可以用一个大小为2。一样可以通过上面的方式存储只是最后几个节点没有存放。i+(1<<n)i从0开始(但是根节点标号为1)对于一个完全二叉树我们可以用数组存储。和完全二叉树比只有最后一层不是满的。对于一个元素个数是2。一个节点的左子树是2。

2023-10-23 10:15:10 63

原创 大数据学习第9周02

神经元:在神经网络中,神经元是基本的计算单元。它接收来自其他神经元的一组输入,每个输入都有一个与之关联的权重。这些加权输入被汇总,然后传递给一个激活函数。激活函数的输出是这个神经元的输出。网络层:一层由多个神经元组成,它们共同执行某种计算。例如,在全连接层中,每个神经元都与上一层的所有神经元相连。在卷积层中,每个“神经元”实际上是一个卷积滤波器,它在输入数据上滑动以生成输出特征图。在某些复杂的网络结构中,如长短时记忆网络 (LSTM) 或门控循环单元 (GRU),计算单元更为复杂。例如,一个 LSTM 单元

2023-10-22 21:28:56 141

原创 大数据学习第8周01

搜索算法比推荐算法多了个query->搜索关键词。

2023-10-21 21:29:23 104

原创 逐行解读wordcount mr代码 ---从0开始学MapReduce

序列化就是将数据(通常是复杂的数据结构或对象)转换成一种格式(通常是字节流或字符串),这种格式方便存储(如保存到文件或数据库中)和发送(如通过网络传输)。反序列化是相反的过程,即从这种格式恢复数据到其原始的数据结构或对象。这种转换的目的是为了确保数据的持久性、传输性和互操作性。

2023-10-20 18:09:24 145

原创 leetcode 1678 交替合并字符串

给你两个字符串 word1 和 word2。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。字符串可以使用[i]进行连续访问,所以维护两个下标的指针就可以判断下一次需要加哪个下标。返回 合并后的字符串。

2023-10-16 10:06:21 72

原创 数字逻辑 时序逻辑电路

在这里插入图片描述](https://img-blog.csdnimg.cn/178730023a834ae9a6d45217017ebc7e.png。从输入驱动信号有效开始,到输出达到稳定有一定的延迟,这个延迟称为触发延迟或锁存延迟。输入不仅取决于当前输出而且取决于电路过去时刻的行为(当前状态现态旧状态)c是使能控制,c为0的时候保持不变c为1的时候D锁存器存D端输入的数据。基于当前状态和输入状态,产生下一状态和输出状态。SR锁存器只有状态,没有输出,常用来设置标志位。状态表变成状态转移表。

2023-10-12 10:08:35 61

原创 c++ 模式匹配 KMP算法

这种信息就是对于每模式串 t 的每个元素 t j,都存在一个实数 k ,使得模式串 t 开头的 k 个字符(t 0 t 1…t k-1)依次与 t j 前面的 k(t j-k t j-k+1…t j-1,这里第一个字符 t j-k 最多从 t 1 开始,所以 k < j)个字符相同。模式串 t 中每个位置 j 的字符都有这种信息,采用 next 数组表示,即 next[ j ]=MAX{ k }。但是之前的问题还没解决,而和else那句类似的问题,我们确定了一个next[j]为什么k不回退,k是什么东西.

2023-10-09 11:54:29 119

原创 sql 基础学习

distinct 相当于一个去重的操作,可以接多个变量,表示对多个变量的组合去重,但是在hive里尽量少用,因为会只有一个reduce很慢。一般先用 group by分组,之后使用下面的函数在,这些函数每一个组内运用,如果没有group by 就在全部属于用。sql是三值逻辑,任何值和null比较时(包括null和null比较时)都会用 unknown进行比较导致错误。如name like"%张%",表示任意名字里有张, 同样也有 not like。默认是asc(升序排列),需要降序排列可以加 desc。

2023-10-08 22:50:36 43

原创 hive 使用

hive -e。

2023-10-08 22:47:59 28

原创 数字逻辑与计算机组成 组合逻辑电路

七段显示译码器,交通数字灯相当于七位二进制数,加上小数点8位,共阳极输入低电平导通,共阴极输入高电平导通(亮),可以表示从1-g的表示。最简单的译码器输入和输出关系是:若输入的二进制编码值是x,则第x输出1其他是0,可以通过使能端en控制(使能端不是必须的).两个输入端和一个输出端,有一个控制端用选择那一路输出(实际计算机中2-路选择器的每个输入通常有n位)一种多输入,多输出的组合电路,电路功能反映输入译码和输出译码之间的映射关系.输入是互斥变量,每次只有一个唯一输入,相当于译码器的反电路。

2023-10-08 15:50:30 291 1

原创 hive join 的用法

该查询将返回 A 表中所有行,以及 B 表中 id 列相等的行,如果在 B 表中没有匹配的行,将返回 NULL 值。该查询将返回 B 表中所有行,以及 A 表中 id 列相等的行,如果在 A 表中没有匹配的行,将返回 NULL 值。3. Right join:返回右表中的所有行,以及左表中匹配的行。2. Left join:返回左表中的所有行,以及右表中匹配的行。1. Inner join:返回两个表中匹配的行。该查询与 inner join 相同,返回 A 和 B 表中 id 列相等的所有行。

2023-10-07 20:00:35 270 1

原创 洛谷 P1638

代码。

2023-10-07 10:39:41 62 1

原创 cs61b 5

我们创立了一些函数作为"中间人",正常情况下访问数据结构应该通过中间人进行,这样我们可以保证使用他们的人不做一些我们不想做的事情,我们可以使用private去控制相应的权限(但是只是向其他程序员发的信号)对SLList写求它的大小的递归写法不是很显然,需要在IntNode里写一个方法求它的大小(原因是SLList并不是一个递归的数据结构,但是IntNode是)在链表的最开始建立一个哨兵节点,这样我们可以永远知道前面有一个哨兵节点,这样就创建了一个永远保证为真的不变量。我们添加一个创建空链表的构造函数。

2023-09-26 22:08:32 129

原创 c++基础知识补充(3)

在哪个类里声明友元,就可以访问哪个类里的私有元素,但是友元关系没有交换性,也没有传递性。返回值类型 类名::函数名()友元类可以访问类中的私有元素。可以访问类中的私有成员。关键字 friend。

2023-09-24 10:45:20 144 1

原创 C++基础知识补充(2)

c++里struct和class没什么区别,区别在于默认访问权限不同,struct默认的访问权限是public,class默认权限是private。

2023-09-23 00:52:03 62 1

原创 数字逻辑与计算机基础 ---逻辑关系描述

每一行和每一列的编号对应对应逻辑变量的输入组合,0表示反变量,1表示原变量,编号按照格雷码的顺序排列,相邻编号只有一位不同。利用布尔代数公理定理,消去多余的乘积项或多余的因子,如果层数超过两级,先转换为两级。圈起来有相邻的一圈起来的是2的幂次方个,保留相同的项,消去不同的项,参考上面的图片。卡诺图中相邻的两项只有一个位不同,如果他们都是1那么既有正变量又有反变量可以消去。每一个输入组合都有一个确定的输出值,每个逻辑函数都有一组确定的输出。每一个标准乘积项只有一个乘积项输出为一,只有一个求和项输出为0。

2023-09-22 15:55:47 466 1

原创 c++基础知识补充(1)

引用:给变量起别名****

2023-09-21 20:47:58 94

原创 cs 61b 04

在java里 赋值号(=)意味着拷贝(相当于把java virtualizer的框框里的东西拷过去),而对象在java里一直是传递一个reference(相当于一个箭头),拷贝的东西都是那个箭头,所以对对象里面东西的修改会影响对象本来的值,int float这种里面存的是数本身,当函数传递的时候传递的是值而不是本身,这个和传递对象不一样。

2023-09-20 19:08:58 85 1

原创 大数据学习

创建临时表 1.缓存中间临时结果 2.数据量比较大,为了保证算法的正确性先抽取一部分数据。窄表:扩展性强,但如果想提取某个用户所有画像效率低。1.创建hive表,将order用户订单。3.split(sent,' ') 切割。6.统计每个用户最喜欢的三个物品是什么。5.统计每个用户每个月购买了多少商品。统计每个用户一共购买了多少商品。2.统计每个用户每天订单分布情况。2.统计每个用户每天订单分布情况。购物平台:用户的曝光,点击,订单。宽表:扩展性差,但是容易使用。

2023-09-17 15:04:32 109 1

原创 hive 01

它是一个SQL解析引擎,将SQL转译成MR Job之后在Hadoop平台上运行,达到快速开发的目的,是纯逻辑表没有物理存储,不支持数据的修改和删除(在0.14版本后可以更新,但是默认不支持)Hive是基于一个统一的查询分析层,通过sql语句对HDFS上的数据进行查询统计和分析,hive本身并不能存数据。如果drop的是内部表,内部表里的数据也会丢失,外部表则只drop表结构不丢失数据。hbase是hdfs的包装,本质是部署在hdfs上的数据库克服随机读写的缺点。例如分32个 user_id % 32。

2023-09-07 23:18:05 32

原创 missing-semester 3 vim

还有replace mode(替换模式r),visual mode(按v切换)大部分时间会在normal mode 和 insert mode(按i切换)shift-v:可视行模式 ctrl-v可视块模式 按下冒号进入命令行模式。normal mode下按o回车切换一行并且进入编辑模式,x删除一个字符。vim认为用鼠标是效率低的方式,所以所有操作都用键盘完成。vim中一个tab对应几个window。启动的时候进入normal mode。在normal mode下的移动。:help {标题}

2023-09-07 22:28:05 41

原创 怎么在GitHub上下载东西

如果选择通过HTTPS克隆,你会看到一个URL,类似于:`https://github.com/username/repository.git`。无论你使用哪种方式,下载完成后你就可以在本地文件系统中看到下载的项目文件。- 如果你选择了下载ZIP文件,在点击“Download ZIP”后,会自动下载一个ZIP压缩文件。- 如果选择通过SSH克隆,你需要确保你的SSH密钥已经配置好,并且你具有对该项目的访问权限。3. 在搜索结果中,找到你要下载的项目,点击它的名称进入项目页面。

2023-08-26 16:16:21 27023

原创 HDFS 02

第一个备份存储在与客户端相同节点(若客户端不在集群内则随机选择,避免选择太满或者太忙的节点)-copyFromLocal 从本地拷贝 本地文件地址 hdfs文件地址。第二个备份,第二个备份放在不同机架上随机选择的节点。-text 文件夹/* > xx.xx写入本地文件。第三个备份放在与第二个备份相同机架的不同节点上、-get 从Hadoop向本地下载。已经存在的文件不能重新创建会报错。-getmerge把文件合成一个。处理并且管理PB级别的数据。-ls 查看目录下文件。-du 显示路径大小。

2023-08-26 16:15:24 36

原创 大数据 HDFS 01

元信息的持久化,Namenode存放元信息的文件是fsimage,在系统运行期间会产生edit logs表示对namenode的修改,secondary Namenode周期性的更新edit logs中的修改到fsimage。一般一条元信息会占用200byte内存空间文件越小存储同等大小的文件所需的元信息就越多,所以Hadoop更喜欢大文件。文件名目录名及他们之前的层级关系,文件所有者及权限,每个文件块的名以及文件由哪些块组成。管理着文件系统的命名空间,维护着文件系统树及树中所有的文件和目录,

2023-08-25 17:47:48 64 1

原创 MapReduce 大数据学习第三天

类似的还有 -casheFile, -casheArchive分别用于向计算节点分发HDFS文件和HDFS压缩文件(已经在hdfs上),前面一个是已经有的文件,后面是一个文件体系。-mapper 需要有,执行map阶段,通过什么方式执行map进程 例如 "python mapper.py"前面是运行程序,后面是脚本。mapred.map.output.compression.codec map的输出压缩方式。-file 分发用,小的文件 map和reduce的执行文件,要用的输入文件。

2023-08-17 16:34:01 78 1

原创 mapreduce计算框架 大数据学习第二天

jobtracker和tasktracker相当于主从节点,jobtracker给tasktracker分配任务,tasktracker周期性的向jobtracker发送自己的状态,自己的客户端直接和jobtracker交互发送任务,之后jobtracker给一个job id,生成一个hdfs目录,名称是job id,之后我们把代码拷进去,jobtracker接收到请求之后初始化之后分配工作。mapred.tasktracker.map.tasks.maximum(默认2)

2023-08-17 13:56:39 82 1

原创 python 大数据学习第一天

with open第一个参数是文件名,第二个参数是打开模式,encoding是编码方式 as后面是给文件起别名,在执行完这个代码块之后文件自动关闭。f.read()返回整个文件,以字符串形式返回,eval是进一步处理,把字符串当做指令处理,处理数据时可能是解读为字典或者列表。函数第一个参数为数或array like的东西第二个数是精度保留小数点后几位,对数据进行四舍六入五成双的方法。返回值是 dict_keys类随字典的变化而变化,做&运算后是键交集,类型为集合。常用的两种余弦距离和jaccard距离。

2023-08-15 14:58:19 35 1

原创 missing-semester 第二节

在实际使用中,可以根据具体需求组合和嵌套这些语句,以构建复杂的逻辑和循环结构。捕获一个命令的输出传递给另外一个命令,和管道一起使用-d的参数表示分隔符的选择,如习题里分隔符应该选择'\n'换行符而不是空格。表示以 null 字符(\0)作为文件名的分隔符输出结果,这样可以正确处理文件名中包含空格或特殊字符的情况。这段命令是一个用于查找当前目录下的所有文件,并按照修改时间进行排序后,输出最近修改的文件的信息的命令。是可选的,并不是必需的。命令仅显示排序后的结果的前一行,也就是显示最近修改的文件信息。

2023-08-05 15:26:09 54 1

原创 The Missing Semester of Your CS Education 第一节

如果bright需要管理员身份才能打开,那么这样依然不能打开,因为以管理员身份运行的是echo,打开brightness时仍为一般用户身份。man <指令> 显示指令的帮助手册(是英文的,比指令加--help选项易读)A | B 把A的输出作为参数传给B,但是A和B是不知道彼此存在的独立的。这个命令中 ugo,代表了所有人,u是自己,g是用户组,o是其他人。xx<file 把file里的东西作为xx指令的参数传进去。文件输出的最后更改日期信息,写入主目录下的。cp [选项] 源文件 目标文件 拷贝文件。

2023-08-02 17:01:36 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除