LeetCode-周赛-370Q4(树状DP)
LeetCode-周赛-370Q4
Q4:100112. 平衡子序列的最大和
解题思路:
这道题对我来说挺难的,写了好久也没有写出来,一开始想法是直接用dp,dp[i]是以nums[i]结尾的最大元素和,但是写的时候发现dp[i]= max(dp[j] + nums[i], nums[i]), dp[j]是前面的最大元素和,所以得知道dp[j]是多少,但是没想出来怎么算这个值,只能把前面的和都存下来,都比一遍求最大值,所以用两层for循环,但是-10^9 <= nums[i] <= 10^9会超时。后来看了题解知道树状数组用树状数组来处理这样大数据量下的查询,更新才行,这道题其实要考察的东西挺多的。
知识点一:转换nums[ij] - nums[ij-1] >= ij - ij-1要转换为nums[i] -i >= nums[j] - j, 先把原来题目里面给的判断公式转换一下,这样可以把nums[i] - i 看成一个整体,更方便计算
知识点二:离散化想用树状数组来计算的前面是数值要都是正整数,而这个题目的数值 ...
机器学习笔记6-逻辑回归
机器学习笔记5-逻辑回归
1.分类
2.假设陈述
3.决策界限
4.代价函数
5.简化代价函数与梯度下降
6.高级优化
7.多元分类:一对多
树莓派安装ros系统
导语:最近给树莓派安装了ros系统,这里记录一下。
步骤:1.下载ros系统的软件这里推荐从ubiquityrobotics下载ubiquityrobotics的系统。这个相当于是给你下载了ubuntu16.04和ros系统一起,只要烧录到树莓派的sd卡里面就可以了,比较方便。注:这里小伙伴跟我说了一个问题,假如是自己下载了ubuntu18的话,然后在手动去安装,ros系统可能会失败,应该是系统版本不兼容的问题。不过我没有遇到,比较推荐的还是直接下载上面说的ros的。
2.烧录系统到SD卡里面这里推荐使用balena,选择下载好的系统和要解压的盘,点击运行即可。这个软件还是挺好用的,可以选择本机的文件,也可以选择网络上要下载的文件的地址。而且如果说要你没有选择SD卡,而是错误的选择了自己的系统盘的话,软件会提示你,把本机系统盘给烧录是很危险的,比较人性化。之前也有用过win32diskimager这个软件(不过感觉没这个好用)。
3.烧录号系统后进入系统(使用vnc或者外接屏幕都可以)默认的用户名:Unbuntu User默认的密码: unbuntu
4.查看ros安装版本从左下角的 ...
树莓派安装
导语用来做机器狗的树莓派3代Model B+到货了,首先给它装了下散热片,正面的cpu和南桥发热量还是很大的。安装散热片可以参考这个视频。讲解的非常详细,我这种小白也是一听就懂。视频讲解链接:散热片安装
安装前:
安装后:这个金黄的树莓标志就是cpu啦,是不是很酷!
散热片装好之后,进入到树莓派系统的安装环节:
树莓派的系统安装树莓派官网有推荐两种安装方式1.通过软件来协助安装系统优点:图像化操作界面,按照步骤操作简单易懂缺点:wifi模块不太好的话,下载系统贼慢(当然也可能是下在系统的网站在国外,下载太慢)需要材料:
123451.安装系统的软件,这里推荐Raspberry Pi Imager ,还有一个是spotmicroai社区文章里面推荐的PINN。 2.树莓派一个 3.电脑一台 4.SD一个 5.读卡器一个
操作步骤: 1.电脑上下载Raspberry Pi Imager 2.用读卡器把树莓派的sd插入到电脑上 3.运行Raspberry Pi Imager,然后选择自己想安装的系统,选择SD卡 4.点击WRITE 5.等待系统安装 ...
树莓派连接pca9685控制舵机
导语:上次咱们已经把树莓派系统搭建起来了,这次咱们在给树莓派的系统配置成需要的样子。树莓派环境搭建
需要材料:1.树莓派(已经安装好系统) x12.直流电源 x13.PCA9685舵机控制器 x14.PDI-HV5523MG舵机 x1
1.更新系统软件
123sudo apt update -ysudo apt dist-upgrade -ysudo apt autoremove -y
这里最好接入有线,直接插上网线的接口就可以直接连上了。无线贼慢,慢到怀疑人生每秒几k,不知道是树莓派的网卡还是哪里设置问题。
2.这里官网教程检测了一下,树莓派的健康状况,如果超过了60度,建议去弄个散热片和风扇。检测命令:
1/opt/vc/bin/vcgencmd measure_temp
会出现类似”temp=55.0’C”,只要温度不是特别高就好,这里以60度为界限吧。
3.系统配置输入命令
1sudo raspi-config
这里很像BIOS的操作界面,要做的有几个I.update Update this tool to the latest version。更新raspi-co ...
greenplum处理数据倾斜
greenplum处理数据倾斜
前言:最近遇到了几次数据倾斜,导致查询很慢的经历,也是头一次知道这个概念和问题,查找资料后处理了该问题,记录一下数据倾斜的问题和处理过程,希望也能帮助到其他人了解gp和数据倾斜。
数据倾斜:首先我们要了解数据倾斜是什么?我们知道gp是mpp数据库,它的存储架构如下图:
从上面的图可以知道, gp由一个coordinator和多个segment组成,coordinator负责分发和汇总请求,segment负责执行。数据也是储存在segment之上,在每个segment计算完毕后,将结果给coordinator汇总在返回给客户端,返回给用户。因此,每个segment的数据量越均匀越好,因为coordinator返回结果的时长是由最慢的那个节点决定的,这就是木桶效应,最短的那个木板决定了这个水桶能装多少水,其他模木板在高也没有用。
举个例子,100万的数据,4个segment,假设每个segment处理10万的数据要1秒,如果数据90%都是在同一个segmentA上,处理要花9秒,那么10%的数据很快就在其他segment上处理完了,花费时间小于1秒,而s ...
postgresql字段被截断问题
前言最近遇到一个问题就是字段名过长,会被pg给截断,导致原始字段和下游用的的字段不一样,就会报错。当然,小伙伴可能会说为什么会用那么长的字段名,每个应用程序里面处理不一样,我们数据字段每次被使用就会加一个后缀,用来标识它是在哪一层里面被使用的,随着被使用的越来越多,就会超长。报错类似于下面这样(字段名是为了测试这个名字故意这样取的,实际不会这样用):
123456test=# ALTER TABLE "test1" RENAME TO "123456789_123456789_123456789_123456789_123456789_123456789_123456789_"; ERROR: relation "test1" does not exist NOTICE: identifier "123456789_123456789_123456789_123456789_123456789_123456789_123456789_" will be truncated to "1234567 ...
2022年回顾
2022年回顾
前言新年和亲朋好友的相聚差不多接近尾声,假期也所剩无几,开始静下心来写作,回顾一下我的2022年,看下自己去年
做得好的和不足,展望下2023,开始新一年的生活。(因为是公历2023年写的文章,所以文中所有的去年都是指的2022年)
一年的时间其实还挺长的,回忆起来经历了很多事情,但是事情仿佛都是一件件被记录在脑海,没有时间关联,好在手机里面储存了一些照片,能够帮助串起这些时间的碎片。所以我在想平时可能还是需要多拍拍照片,往后才能更好的回忆往昔的生活。随着一张张照片在眼前不快不慢的扫过,中间看到印象深刻的事情略作停顿,嘴角微微上扬,看完之后对自己这一年有了一个大致的印象,以下按照几个大块来分别回忆总结下。
分类1.体育锻炼去年上半年还是跟同事一起在公司楼上的健身房挥汗如雨,坚持的比较好,到下半年去七月份开始因为出差了一个月,回来后发现其他几个同事就没有继续去锻炼了(果然懒惰是会传染的,有一个人不参加,大家的积极性就会急剧下降)。然后我们的锻炼小组直接解散,只能靠自己约束自己来锻炼了。正好七月份天气也热了,继续着我去年给自己定的游泳计划-学会自由游,也继续着自己体育锻炼的 ...
2021年回顾
前言本来也不打算写年终总结了,毕竟公历和农历年都过了,但是想想之前也没有正式写过什么年终总结,现在开始每年写一篇,等到自己年纪大了,在翻看自己年轻时写下的一篇篇回忆录,看看当时的自己正在干什么,也还是挺有趣的,否则时间太长的话就真的不记得当时做过些什么了。很多年之后再翻看的时候,和当时写记录的时候对比心情肯定也不一样了,所以还是有必要写点啥。于是开始拿着手机的照片和记录翻阅,看看自己2021年都干了些啥。
1.体育锻炼:从过年之后开始上班,在3月份有了一个很大的转变就是加入了公司的健身小分队,开始锻炼身体,想想自己从毕业之后基本上很少参加体育锻炼,身体素质确实下降了很多。想起以前在学校的时光,在杭电的时候还有阳光长跑和体育课,阳光长跑这个是学校响应教育部出台的一个政策,每个大学生都必须一个学期完成指标的次数,好像是要算到学分里面之类的。这个政策还是挺好的,很多同学那时候都不怎么锻炼身体,这个硬性规定至少在一定程度上提高了大家的身体素质和跑步水平。虽然也衍生出了一些代跑的赚钱路子,有些人不想跑就出钱,让其他人帮忙拿着自己的学生卡去跑步,刷卡,还有人骑自行车刷跑步次数,学校后来也加强了监管 ...
954-leetcode
leetcode-954链接
方法一:找出数组中成对的的二倍数组对,第一反应就是求每个数组的值看,是否有当前值的2倍或者1/2,如果每个值有2倍数或者1/2的数,那么就返回true。然后这个2倍数或者1/2使用hashmap存一下,来判断。后来发现这里是不能用1/2, 因为整数的除法会忽略小数,-5 / 2 = -2这样结果就不对了,所以只能用乘法来找。思路:用一个map储存每个值出现的次数key-数值,value-出现次数,从小的数i开始遍历(所以要把arr排个序),如果map中存在2i的数值,2i的次数就减去i出现的次数。判定的条件是:如果i的次数小于2*i的次数,就直接返回false。举个栗子,[2,,2,4,5],i =2, 2的次数2是,2 * i = 4,4的次数是1,那么肯定不能成对了。如果是[2,4,4,8], 4的次数是大于2的次数的这样还是有机会凑成对的。所以只要遍历完arr的时候,判定条件还是成立的就可以返回true。
注:1.先判断0的次数的奇偶,如果是奇数的直接返回false即 ...