- 博客(51)
- 资源 (25)
- 收藏
- 关注
原创 [Leetcode]6032. 得到要求路径的最小带权子图
【题目描述】给你一个整数n,它表示一个带权有向图的节点数,节点编号为0到n - 1。同时给你一个二维整数数组edges,其中edges[i] = [fromi, toi, weighti],表示从fromi到toi有一条边权为weighti的有向边。最后,给你三个互不相同的整数src1,src2和dest,表示图中三个不同的点。请你从图中选出一个边权和最小的子图,使得从src1和src2出发,在这个子图中,都可以到达de......
2022-07-31 17:29:32
345
原创 [Leetcode]5982. 解决智力问题
【题目描述】给你一个下标从 0开始的二维整数数组questions,其中questions[i] = [pointsi, brainpoweri]。这个数组表示一场考试里的一系列题目,你需要 按顺序(也就是从问题 0开始依次解决),针对每个问题选择 解决或者 跳过操作。解决问题 i将让你 获得pointsi的分数,但是你将 无法解决接下来的brainpoweri个问题(即只能跳过接下来的 brainpoweri个问题)。如果你跳过问题i,你可以对下一个问题决定使...
2022-01-16 18:10:01
4166
1
原创 [Leetcode]5970. 参加会议的最多员工数
【题目描述】力扣https://leetcode-cn.com/problems/maximum-employees-to-be-invited-to-a-meeting/一个公司准备组织一场会议,邀请名单上有n位员工。公司准备了一张 圆形的桌子,可以坐下 任意数目的员工。员工编号为 0到 n - 1。每位员工都有一位 喜欢的员工,每位员工当且仅当他被安排在喜欢员工的旁边,他才会参加会议。每位员工喜欢的员工 不会是他自己。给你一个下标从 0开始的整数数组favorit...
2022-01-02 20:48:45
1077
原创 [Leetcode]2097.合法重新排列数对
【题目描述】力扣https://leetcode-cn.com/problems/valid-arrangement-of-pairs/给你一个下标从 0开始的二维整数数组pairs,其中pairs[i] = [starti, endi]。如果 pairs的一个重新排列,满足对每一个下标 i (1 <= i < pairs.length)都有endi-1 == starti ,那么我们就认为这个重新排列是pairs 的一个 合法重新排列 。请你返回 任意一个pa...
2021-12-26 15:33:33
425
原创 谈软件重构
【重构的目的】重构的目的是消除代码的坏味道,使代码满足clean code.常见的坏味道:1、重复代码2、函数功能不单一、超大函数3、安全函数使用不规范,比如memcpy没判断返回值、未判断缓冲区的长度等4、数据类型重新定义;比如typedef int DWORD5、switch-case过多,圈复杂度高6、代码各个模块耦合严重,测试困难....【clean code的标准】好代码一般具备以下特质:可读、安全、可靠、高效、可测试、可维护、可扩展【软件设计原
2021-11-29 00:33:34
1652
原创 开源深度学习框架研究(1)
MNN:MNN Kit:提供推理以及训练的API接口,用于算法应用集成和调用。Python API 使用文档 · 语雀模型推理:1)解释器对应模型数据2)session对应运行时配置信息;多个session对应一个解释器,即一个模型可以采用不同的配置进行推理执行;3)输入tensor,需要指定输入tensor的format,比如caffe::nchw,tf::NHWC;如果与模型的输入不匹配,内部会进行转换;4)输出tensor的format也需要指定,如果与模型的输出不一致
2021-11-21 23:17:26
1765
1
原创 [Leetcode]5921. 最大化一张图中的路径价值
【题目描述如下】给你一张 无向图,图中有 n个节点,节点编号从 0到 n - 1(都包括)。同时给你一个下标从 0开始的整数数组values,其中values[i]是第 i个节点的 价值。同时给你一个下标从 0开始的二维整数数组edges,其中edges[j] = [uj, vj, timej]表示节点uj 和vj之间有一条需要timej秒才能通过的无向边。最后,给你一个整数maxTime。合法路径指的是图中任意一条从节点0开始,最终回到节点 0...
2021-11-07 20:36:03
317
原创 [Leetcode]5920. 分配给商店的最多商品的最小值
【题目描述】给你一个整数n,表示有n间零售商店。总共有m种产品,每种产品的数目用一个下标从0开始的整数数组quantities表示,其中quantities[i]表示第i种商品的数目。你需要将所有商品分配到零售商店,并遵守这些规则:一间商店至多只能有一种商品,但一间商店拥有的商品数目可以为任意件。 分配后,每间商店都会被分配一定数目的商品(可能为0件)。用x表示所有商店中分配商品数目的最大值,你希望x越小越好。也就是说,你想最小化分配...
2021-11-07 20:31:28
3963
原创 [Leetcode]5917. 同源字符串检测
【题目描述如下】原字符串由小写字母组成,可以按下述步骤编码:任意将其 分割 为由若干 非空 子字符串组成的一个 序列 。任意选择序列中的一些元素(也可能不选择),然后将这些元素替换为元素各自的长度(作为一个数字型的字符串)。重新 顺次连接 序列,得到编码后的字符串。例如,编码 "abcdefghijklmnop" 的一种方法可以描述为:将原字符串分割得到一个序列:["ab", "cdefghijklmn", "o", "p"] 。选出其中第二个和第三个元素并分别替换为它们自身的长度。序列
2021-10-31 19:18:48
4041
原创 [Leetcode]5916. 转化数字的最小运算数
【题目描述如下】给你一个下标从0开始的整数数组nums,该数组由互不相同的数字组成。另给你两个整数start和goal。整数x的值最开始设为start,你打算执行一些运算使x转化为goal。你可以对数字x重复执行下述运算:如果0 <= x <= 1000,那么,对于数组中的任一下标i(0 <= i < nums.length),可以将x设为下述任一值:x + nums[i] x - nums[i] x ^ nums...
2021-10-31 15:07:41
3796
原创 [Leetcode]5897. 将数组分成两个数组并最小化数组和的差
【题目描述如下】给你一个长度为 2 * n的整数数组。你需要将nums分成两个长度为n的数组,分别求出两个数组的和,并 最小化两个数组和之差的绝对值。nums中每个元素都需要放入两个数组之一。请你返回最小的数组和之差。示例 1:输入:nums = [3,9,7,3]输出:2解释:最优分组方案是分成 [3,9] 和 [7,3] 。数组和之差的绝对值为 abs((3 + 9) - (7 + 3)) = 2 。示例 2:输入:nums = [-36,36]输...
2021-10-10 21:04:48
1659
原创 [Leetcode]5895. 获取单值网格的最小操作数
【题目描述如下】给你一个大小为m x n的二维整数网格grid和一个整数x。每一次操作,你可以对grid中的任一元素加x或减x。单值网格是全部元素都相等的网格。返回使网格化为单值网格所需的最小操作数。如果不能,返回-1。【分析】从题目数量级上可以看出要求O(n)的复杂度;从常识的角度看,最小操作数如果存在肯定是数列的中值;下面从数学的角度证明如下:网格中的值从小往大排列为数列x1,x2,x3…xn,假设存在最小操作数,使...
2021-10-10 14:46:38
142
原创 [Leetcode]2014. 重复 K 次的最长子序列
【题目描述如下】给你一个长度为n的字符串s,和一个整数k。请你找出字符串s中重复k次的最长子序列。子序列是由其他字符串删除某些(或不删除)字符派生而来的一个字符串。如果seq * k是s的一个子序列,其中seq * k表示一个由seq串联k次构造的字符串,那么就称seq是字符串s中一个重复k次的子序列。举个例子,"bba"是字符串"bababcba"中的一个重复2次的子序列,因为字符串"bbabba"是由"bba...
2021-09-20 23:39:39
737
原创 [Leetcode]5869. 两个回文子序列长度的最大乘积
【题目描述如下】给你一个字符串s,请你找到s中两个不相交回文子序列,使得它们长度的乘积最大。两个子序列在原字符串中如果没有任何相同下标的字符,则它们是不相交的。请你返回两个回文子序列长度可以达到的最大乘积。子序列指的是从原字符串中删除若干个字符(可以一个也不删除)后,剩余字符不改变顺序而得到的结果。如果一个字符串从前往后读和从后往前读一模一样,那么这个字符串是一个回文字符串。【分析】从提示来看,数据量不大,但是字符串的组合很多,每个字符都有选和不选...
2021-09-12 14:18:25
240
原创 C++11新特性解析与应用--第三章 通用为主,专用为辅
3.1 继承构造函数派生类可以继承基类的成员变量和接口,但是构造函数(包括拷贝构造)、析构函数、赋值运算符重载函数不能被继承。这样派生类对象构造的的时候需要显示调用基类的构造函数,才能完成基类成员的初始化;有时候这种做法会产生很多的冗余代码,比如当基类中有多中构造函数时,派生类中需要添加对应的构造函数完成基类成员变量的初始化,这种做法很不方便;在c++11中,派生类中可以通过使用using来继承基类的构造函数;这种做法可以节省代码占用空间,而且编译器会将没有使用到的构造函数优化掉..
2021-04-07 23:49:29
228
原创 STL使用参考
STL使用参考字符串操作https://www.cnblogs.com/c1299401227/p/5370685.htmlstringstream ss;ss << val;string s;ss >>s;hash_maphttps://blog.youkuaiyun.com/yousss/article/details/79541543?depth_1-utm_so...
2020-03-29 23:36:13
203
原创 模型(或系统)的评价指标
评价指标有准确率(Precision)、召回率(Recall)、F值(F-Measure)等; 以一个二分类问题为例,引出混淆矩阵的概念:True Positive(真正,TP):将正类预测为正类数True Negative(真负,TN):将负类预测为负类数False Positive(假正,FP):将负类预测为正类数误报 (Type I error)False Negative(...
2018-10-04 13:31:13
1409
原创 匈牙利算法
匈牙利算法(Hungarian Algorithm):用于求解二分图的最大匹配问题一些定义:二分图:把一个图的顶点划分为两个不相交集 U 和V ,使得每一条边都分别连接U、V中的顶点,且U或V中顶点没有边相连接。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是:不含有「含奇数条边的环」的图。匹配:在图论中,一个「匹配」(matching)是匹配边的集合,其中任意两
2018-03-17 23:47:51
487
原创 Dijksta算法原理
Dijkstra算法(迪杰斯特拉算法):搜索从某一顶点出发到其他各点的最短距离 。在写上面这句话时,我反复确认了Dijksta拼写是否正确,虽然很早就接触过这个算法,但一直没拼对过这个算法的名字。下文结合实例介绍该算法的原理。1.算法描述1)算法思想:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后
2017-06-10 17:56:22
1654
原创 OJ-位图算法
题目描述:位图法就是bitmap的缩写,是用每一个bit位来存放某种状态,适用于大规模数据的查找和排序。位图算法称的上是最简单的算法,只需要一个for循环就能够搞定排序和查找,但是同时它也是对待操作的数据要求最苛刻的,首先这些数据必须是正整数,且数据不能重复,其次要大致知道这些数据的范围,且有一定的聚集性。数据结构为:unsigned int bitmap[N] ,其可以表示的数据范围是
2017-05-14 20:30:35
559
原创 OJ题-营救公主
题目描述如下:题面:500年前,Jesse是我国最卓越的剑客。他英俊潇洒,而且机智过人^_^。突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中。Jesse听说这个消息已经是两天以后了,他知道公主在迷宫中还能坚持T天,他急忙赶到迷宫,开始到处寻找公主的下落。时间一点一点的过去,Jesse还是无法找到公主。最后当他找到公主的时候,美丽的公主已经死了。从此Jesse郁郁寡欢,
2017-05-13 00:46:48
5355
原创 2016华为上机题:计算下一秒
题目描述: 输入日期和时间,输出该日期和时间的下一秒。考虑闰年情况输入:2016/03/18 01:01:01输出:2016/03/18 01:01:02下面为参考程序:// 计算下一秒.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include #include #include #inclu
2016-09-21 20:34:21
655
原创 华为上机题:等式变换
输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。1 2 3 4 5 6 7 8 9 = X比如:12-34+5-67+89 = 51+23+4-5+6-7-8-9 = 5请编写程序,统计满足输入整数的所有整数个数。输入: 正整数,等式右边的数字输出: 使该等式成立的个数样例输入:5样例输出:21参考程序采用
2016-09-21 20:22:13
619
原创 2016华为上机题:提取键值对
问题描述:输入一串字符串,提取其中的键值对输入:输入一串字符串,以等号和逗号隔开输出:输出按指定的格式如实例示例:输入: name=Justin,age=18,gender=male,job=swe输出: [[name,Justin],[age,18],[gender,male],[job,swe]]下面参考
2016-09-21 20:00:32
401
原创 2016华为上机题:挑选出现最多的数字
问题描述:输入一串整型数据,取出整形数据中出现次数最多的整数,并按照升序排列返回输入:一串整型数据每行一个整数之间用空格隔开输出:取出整形数据中出现次数最多的整数,并按照升序排列返回示例:输入: 1 1 3 4 4 4 9 9 9 10输出:4 9下面参考程序是在VS2013中调试的,用了C++的ST实现:// 挑选出现最
2016-09-21 18:30:41
469
原创 2016华为机试题:字符串按指定长度分割
问题描述:输入M个字符串,按指定长度N拆分每个字符串,输出新的字符串,长度不是N的整数倍的字符串请在后面补数字0输入:输入整数M,N,以逗号隔开每行一个字符串,共M个字符串,每行字符串小于50个字符输出:按指定长度N拆分字符串,输出拆分后的字符串示例:输入: 2,8 abc 123456789
2016-09-21 13:07:47
2025
原创 智能农业控制系统
智能农业控制系统能根据实时的农田环境数据、农作物生长情况,借助于数据挖掘技术、图像处理技术,结合专家决策库给出决策规则,自动控制农田设备,调节农田环境参数,控制农作物生长情况。智能农业控制系统如图所示。 图X: 智能农业控制系统1)基于图像处理技术的农作物生长阶段判断系统该系统利用图像处理技术,对农作物生长不同阶段
2016-08-20 15:18:51
7315
1
原创 正则化及正则化项的理解
首先了解一下正则性(regularity),正则性衡量了函数光滑的程度,正则性越高,函数越光滑。(光滑衡量了函数的可导性,如果一个函数是光滑函数,则该函数无穷可导,即任意n阶可导)。正则化是为了解决过拟合问题。在Andrew Ng的机器学习视频中有提到(详见http://www.cnblogs.com/jianxinzhou/p/4083921.html)。解决过拟合的两种方法:方法一:尽
2016-08-13 21:55:56
79203
3
原创 CNN卷积神经网络的理解
机器学习的两大部分:浅层学习(shallow learning)和深度学习(deep learning),两者的主要区别是:浅层学习(如SVM、BP、AdaBoost等)的输入都是人工规则提取的特征;而深度学习是用CNN提取深层次的特征,然后将这些特征作为分类器(如SVM、BP、AdaBoost等)的输入。深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征
2016-08-07 22:18:39
7176
原创 VS2010/2013下openCV的配置
1、配置include路径:VS2010中设置VC++目录有两种方法,一是通过项目属性页面Project Property Pages逐个项目的设置,另外一个方法是通过属性管理Property Manager进行全局设置)。找到VC++Directories进行针对Debug的目录配置。在Include Directories中,加入目录:[根据自己的路径修改]\opencv\buil
2016-08-07 21:33:57
435
3
转载 LIB,DLL区别 及 VS中如何添加LIB,DLL
LIB和DLL文件在创建工程项目时是必须要面对的,下面的文章讲述了如何添加LIB和DLL文件以及两者的区别。原文:原文 http://www.cnphp6.com/archives/649671.加载lib/头文件分两种方法:(1)适用于当前项目1 第一步:项目->属性->C/C++->常规->附加包含目录(浏览.h文件的路径) 添加包含文件2 第二
2016-08-07 09:59:49
6441
原创 浮点数与字节数据的转换
做项目时,碰到一个问题:如何将32位的浮点数转化成4个字节数据进行传送?下面给出算法代码:(注:该算法来自网上,如侵权,请联系删除。)/**function:ftoc(float a)*decription: 浮点数转化成四个字节*input:*output:*/void ftoc(float a)//例如12.5--0x41 48 00 00;转换完之后,e[0]-00,e
2016-04-22 16:54:32
13876
原创 CRC16(modbus)校验
CRC16(循环冗余校验),CRC16有很多种,此处的算法主要是用于计算modbus协议通信时的校验码。//用于CRC校验const char auchCRCHi[256]={ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x0
2016-04-22 16:35:52
11364
2
原创 modbus协议(2)
上一篇介绍了modbus协议的基本概念,这一篇主要介绍最近做的一个小项目:STM3210ZET6与昆仑屏(TPC)的通信。在该项目中最关键的技术就是下位机modbus协议的解析。 首先介绍下昆仑屏(TPC),项目中用到的触摸屏采用的RS232接口,modbus协议。 采用的驱动是:莫迪康ModbusRTU;本驱动支持 01、02、03、04、05、06、15、16 常用功能
2016-04-22 16:19:14
8829
原创 modbus 协议(1)
提到通信方式,一般包括两方面的内容:物理接口和通信协议。物理接口是指RS232、RS485、RJ-45等;通信协议是指modbus、PPI、Profibus、自定义的协议等。 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,
2016-04-22 10:59:09
1631
原创 2016.3.18华为上机题:拼音转数字
这是第三题。。。第二题为2015年的题目:洞穴逃生,参考本人博客列表。。输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:描述: 拼音 yi er san si wu liu qi ba jiu阿拉伯数字 1 2 3 4 5 6 7 8 9输入字符只包含小写字母
2016-03-18 11:45:26
724
原创 2016.3.18华为上机题目:去除重复字符并排序
运行时间限制:无限制内容限制: 无限制输入: 字符串输出: 去除重复字符并排序的字符串样例输入: aabcdefff样例输出: abcdef#include "iostream"using namespace std;char * sortuser(char *p){ in
2016-03-18 11:01:05
553
原创 2016华为机试题:循环报数
问题描述:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号?输入:2 输出:2#include "stdafx.h"#include "iostream"#include "vector" //顺序容器using namespace std;void LastOne(int N){ int i,
2016-03-14 11:09:38
553
原创 2016华为机试题:猴子分桃
问题描述:海滩上有一堆桃子,m只猴子来分,第一只猴子把这堆桃子平均分成m份,多了一个,这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成m份,又多了一个,他同样把多的一个仍入海中,拿走了一份,第三,第四,...,第m只猴子都是这样做的,问海滩上原来最少有多少个桃子? /* 输入m=1,桃子数量n=2 输入m=2,桃子数量n=7 输入m=3,
2016-03-14 11:05:33
2365
Convex Optimization
2016-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人